Quite big patchset trying to implement normal, readable qemu-img --help
(and qemu-img COMMAND --help) output with readable descriptions, and
adding many long options in the process.
In the end I stopped using qemu-img-opts.hx in qemu-img.c, perhaps
this can be avoided, with only list of commands and their desrciptions
kept there, but I don't see big advantage here. The same list should
be included in docs/tools/qemu-img.rst, - this is not done now.
Also each command syntax isn't reflected in the doc for now, because
I want to give good names for options first, - and there, we've quite
some inconsistences and questions. For example, measure --output=OFMT
-O OFMT, - this is priceless :) I've no idea why we have this ugly
--output=json thing, why not have --json? ;) I gave the desired
format long name --target-format to avoid clash with --output.
For rebase, src vs tgt probably should be renamed in local variables
too, and I'm not even sure I've got the caches right. For caches,
the thing is inconsistent across commands.
For compare, I used --a-format/--b-format (for -f/-F), - this can
be made --souce-format and --target-format, to compare source (file1)
with target (file2).
For bitmap, things are scary, I'm not sure what -b SRC_FILENAME
really means, - for now I gave it --source option, but this does
not make it more clear, suggestions welcome.
There are many other inconsistencies, I can't fix them all in one
go.. :)
Changes since v1:
- reformatted help text to be less condensed
- added cleanups (first 3 patches and last patch)
- change argv[0] handling and getopt error reporting to
fix inherent bug (see patch 4 "global option processing"
for details)
- removed missing_argument() & unrecognized_option()
and handling of '?' and ':' getopt return values
- more robust handling of resize filename -size vs options
("resize: do not always eat last argument")
- larger cleanup in snapshot mode handling
("snapshot: make -l (list) the default...")
- cvtnum and number conversion and bugfixes
("extend cvtnum() and use it in more places")
- removed unused option_index variable in two places
- added a few fixmes
- various other minor changes
I kept Dan's R-b for a few patches he reviewed
despite the changed, - hopefully it's okay, since
the new changes are not related to the initial ones.
Keeping him in Cc for that.
Michael Tokarev (28):
qemu-img: stop printing error twice in a few places
qemu-img: measure: convert img_size to signed, simplify handling
qemu-img: create: convert img_size to signed, simplify handling
qemu-img: global option processing and error printing
qemu-img: pass current cmd info into command handlers
qemu-img: create: refresh options/--help
qemu-img: factor out parse_output_format() and use it in the code
qemu-img: check: refresh options/--help
qemu-img: simplify --repair error message
qemu-img: commit: refresh options/--help
qemu-img: compare: refresh options/--help
qemu-img: convert: refresh options/--help
qemu-img: info: refresh options/--help
qemu-img: map: refresh options/--help
qemu-img: snapshot: allow specifying -f fmt
qemu-img: snapshot: make -l (list) the default
qemu-img: snapshot: refresh options/--help
qemu-img: rebase: refresh options/--help
qemu-img: resize: do not always eat last argument
qemu-img: resize: refresh options/--help
qemu-img: amend: refresh options/--help
qemu-img: bench: refresh options/--help
qemu-img: bitmap: refresh options/--help
qemu-img: dd: refresh options/--help
qemu-img: measure: refresh options/--help
qemu-img: implement short --help, remove global help() function
qemu-img: inline list of supported commands, remove qemu-img-cmds.h
include
qemu-img: extend cvtnum() and use it in more places
docs/tools/qemu-img.rst | 4 +-
qemu-img-cmds.hx | 4 +-
qemu-img.c | 1143 +++++++++++++++++++++++----------------
3 files changed, 670 insertions(+), 481 deletions(-)
--
2.39.2