block: Add '--version' option to qemu-img
This allows qemu-img to print out version information, without needing to print the long help wall of text. While there, perform some minor whitespace cleanup, and remove the unused option_index variable in the call to getopt_long(). Reported-by: Eric Blake <eblake@redhat.com> Signed-off-by: Jeff Cody <jcody@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
f0e9736012
commit
5f6979cba9
15
qemu-img.c
15
qemu-img.c
|
@ -33,6 +33,9 @@
|
||||||
#include "block/qapi.h"
|
#include "block/qapi.h"
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
|
||||||
|
#define QEMU_IMG_VERSION "qemu-img version " QEMU_VERSION \
|
||||||
|
", Copyright (c) 2004-2008 Fabrice Bellard\n"
|
||||||
|
|
||||||
typedef struct img_cmd_t {
|
typedef struct img_cmd_t {
|
||||||
const char *name;
|
const char *name;
|
||||||
int (*handler)(int argc, char **argv);
|
int (*handler)(int argc, char **argv);
|
||||||
|
@ -75,7 +78,7 @@ static void QEMU_NORETURN GCC_FMT_ATTR(1, 2) error_exit(const char *fmt, ...)
|
||||||
static void QEMU_NORETURN help(void)
|
static void QEMU_NORETURN help(void)
|
||||||
{
|
{
|
||||||
const char *help_msg =
|
const char *help_msg =
|
||||||
"qemu-img version " QEMU_VERSION ", Copyright (c) 2004-2008 Fabrice Bellard\n"
|
QEMU_IMG_VERSION
|
||||||
"usage: qemu-img command [command options]\n"
|
"usage: qemu-img command [command options]\n"
|
||||||
"QEMU disk image utility\n"
|
"QEMU disk image utility\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -2790,9 +2793,9 @@ int main(int argc, char **argv)
|
||||||
const img_cmd_t *cmd;
|
const img_cmd_t *cmd;
|
||||||
const char *cmdname;
|
const char *cmdname;
|
||||||
int c;
|
int c;
|
||||||
int option_index = 0;
|
|
||||||
static const struct option long_options[] = {
|
static const struct option long_options[] = {
|
||||||
{"help", no_argument, 0, 'h'},
|
{"help", no_argument, 0, 'h'},
|
||||||
|
{"version", no_argument, 0, 'v'},
|
||||||
{0, 0, 0, 0}
|
{0, 0, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2811,17 +2814,21 @@ int main(int argc, char **argv)
|
||||||
cmdname = argv[1];
|
cmdname = argv[1];
|
||||||
|
|
||||||
/* find the command */
|
/* find the command */
|
||||||
for(cmd = img_cmds; cmd->name != NULL; cmd++) {
|
for (cmd = img_cmds; cmd->name != NULL; cmd++) {
|
||||||
if (!strcmp(cmdname, cmd->name)) {
|
if (!strcmp(cmdname, cmd->name)) {
|
||||||
return cmd->handler(argc - 1, argv + 1);
|
return cmd->handler(argc - 1, argv + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c = getopt_long(argc, argv, "h", long_options, &option_index);
|
c = getopt_long(argc, argv, "h", long_options, NULL);
|
||||||
|
|
||||||
if (c == 'h') {
|
if (c == 'h') {
|
||||||
help();
|
help();
|
||||||
}
|
}
|
||||||
|
if (c == 'v') {
|
||||||
|
printf(QEMU_IMG_VERSION);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* not found */
|
/* not found */
|
||||||
error_exit("Command not found: %s", cmdname);
|
error_exit("Command not found: %s", cmdname);
|
||||||
|
|
Loading…
Reference in New Issue