"Daniel P. Berrange" <berra...@redhat.com> writes: > On Thu, May 13, 2010 at 10:32:52AM +0200, jes.soren...@redhat.com wrote: >> From: Jes Sorensen <jes.soren...@redhat.com> >> >> Add -version-simple argument for QEMU, printing just the version >> number, without any supporting text. >> >> This makes it simpler for other apps, such as libvirt, to parse the >> version string from QEMU independant of how the naming string may >> change. >> >> Signed-off-by: Jes Sorensen <jes.soren...@redhat.com> >> --- >> qemu-options.hx | 8 ++++++++ >> vl.c | 9 +++++++++ >> 2 files changed, 17 insertions(+), 0 deletions(-) >> >> diff --git a/qemu-options.hx b/qemu-options.hx >> index 12f6b51..e4f3979 100644 >> --- a/qemu-options.hx >> +++ b/qemu-options.hx >> @@ -27,6 +27,14 @@ STEXI >> Display version information and exit >> ETEXI >> >> +DEF("version-simple", 0, QEMU_OPTION_version_simple, >> + "-version-simple display version information and exit\n", QEMU_ARCH_ALL) >> +STEXI >> +...@item -version-simple >> +...@findex -version-simple >> +Display basic version number information and exit >> +ETEXI >> + >> DEF("M", HAS_ARG, QEMU_OPTION_M, >> "-M machine select emulated machine (-M ? for list)\n", >> QEMU_ARCH_ALL) >> STEXI >> diff --git a/vl.c b/vl.c >> index 85bcc84..5adca87 100644 >> --- a/vl.c >> +++ b/vl.c >> @@ -2015,6 +2015,11 @@ static void version(void) >> printf("QEMU emulator version " QEMU_VERSION QEMU_PKGVERSION ", >> Copyright (c) 2003-2008 Fabrice Bellard\n"); >> } >> >> +static void version_simple(void) >> +{ >> + printf(QEMU_VERSION QEMU_PKGVERSION "\n"); >> +} >> + >> static void help(int exitcode) >> { >> const char *options_help = >> @@ -2960,6 +2965,10 @@ int main(int argc, char **argv, char **envp) >> version(); >> exit(0); >> break; >> + case QEMU_OPTION_version_simple: >> + version_simple(); >> + exit(0); >> + break; >> case QEMU_OPTION_m: { >> uint64_t value; >> char *ptr; > > This omits the KVM version string which is something we also want to see. > It would also be nice to avoid having to parse the -help output to determine > ARGV supported too. I wonder if it would be a good idea to just produce a > well structured equivalent to -help that provides the same data, but in > JSON format for sane parsing. That would let peple easily determine the > supported ARGV as well as version number(s)
I'm all for machine-readable self-documentation. And the place for that is QMP. Humble beginnings are already there: { "execute": "query-version", "arguments": { } } --> {"return": {"qemu": "0.12.50", "package": ""}} { "execute": "query-commands", "arguments": { } } --> {"return": [{"name": "quit"}, {"name": "eject"}, [...] Any practical problems with use of QMP instead of parsing command line option output?