qemu-img: Support help options for --object
Instead of parsing help options as normal object properties and
returning an error, provide the same help functionality as the system
emulator in qemu-img, too.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
diff --git a/qemu-img.c b/qemu-img.c
index 384c6f3..8b03ef8 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -214,6 +214,14 @@
},
};
+static bool qemu_img_object_print_help(const char *type, QemuOpts *opts)
+{
+ if (user_creatable_print_help(type, opts)) {
+ exit(0);
+ }
+ return true;
+}
+
static QemuOptsList qemu_source_opts = {
.name = "source",
.implied_opt_name = "file",
@@ -516,7 +524,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
goto fail;
}
@@ -766,7 +774,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
return 1;
}
@@ -979,7 +987,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
return 1;
}
@@ -1362,7 +1370,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
ret = 2;
goto out4;
}
@@ -2210,7 +2218,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
goto fail_getopt;
}
@@ -2776,7 +2784,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
return 1;
}
@@ -3002,7 +3010,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
return 1;
}
@@ -3154,7 +3162,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
return 1;
}
@@ -3321,7 +3329,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
return 1;
}
@@ -3742,7 +3750,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
return 1;
}
@@ -3986,7 +3994,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
ret = -1;
goto out_no_progress;
}
@@ -4630,7 +4638,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
ret = -1;
goto out;
}
@@ -4907,7 +4915,7 @@
if (qemu_opts_foreach(&qemu_object_opts,
user_creatable_add_opts_foreach,
- NULL, &error_fatal)) {
+ qemu_img_object_print_help, &error_fatal)) {
goto out;
}