On 06/29/2016 12:27 AM, Stefan Hajnoczi wrote:
From: "Denis V. Lunev" <d...@openvz.org>
This is necessary to enable creation of common qemu-img options which will
be specified before command.
The patch also enables '-V' alias to '--version' (exactly like in other
block utilities) and documents this change.
Signed-off-by: Denis V. Lunev <d...@openvz.org>
Reviewed-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
Message-id: 1466174654-30130-7-git-send-email-...@openvz.org
CC: Paolo Bonzini <pbonz...@redhat.com>
CC: Kevin Wolf <kw...@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
---
qemu-img.c | 41 +++++++++++++++++++++++++++--------------
qemu-img.texi | 10 +++++++++-
2 files changed, 36 insertions(+), 15 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index 14e2661..2194c2d 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -91,9 +91,12 @@ static void QEMU_NORETURN help(void)
{
const char *help_msg =
QEMU_IMG_VERSION
- "usage: qemu-img command [command options]\n"
+ "usage: qemu-img [standard options] command [command options]\n"
"QEMU disk image utility\n"
"\n"
+ " '-h', '--help' display this help and exit\n"
+ " '-V', '--version' output version information and exit\n"
+ "\n"
"Command syntax:\n"
#define DEF(option, callback, arg_string) \
" " arg_string "\n"
@@ -3806,7 +3809,7 @@ int main(int argc, char **argv)
int c;
static const struct option long_options[] = {
{"help", no_argument, 0, 'h'},
- {"version", no_argument, 0, 'v'},
+ {"version", no_argument, 0, 'V'},
{0, 0, 0, 0}
};
@@ -3829,28 +3832,38 @@ int main(int argc, char **argv)
if (argc < 2) {
error_exit("Not enough arguments");
}
- cmdname = argv[1];
qemu_add_opts(&qemu_object_opts);
qemu_add_opts(&qemu_source_opts);
+ while ((c = getopt_long(argc, argv, "+hV", long_options, NULL)) != -1) {
+ switch (c) {
+ case 'h':
+ help();
+ return 0;
+ case 'V':
+ printf(QEMU_IMG_VERSION);
+ return 0;
+ }
+ }
+
+ cmdname = argv[optind];
+
+ /* reset getopt_long scanning */
+ argc -= optind;
+ if (argc < 1) {
+ return 0;
+ }
+ argv += optind;
+ optind = 1;
this patch breaks check-block.sh
we should have here
'optind = 0'
Den