On 12/22/2015 04:06 AM, Daniel P. Berrange wrote: > Currently qemu-io allows an image filename to be passed on the > command line, but does not have a way to set any options except > the format eg > > qemu-io https://127.0.0.1/images/centos7.iso > qemu-io /home/berrange/demo.qcow2
Well, you CAN set the options by specifying the file as: qemu-io json:{...} but that's a mouthful to type, so I don't mind adding the new syntax. > > This adds a --source arg (that is mutually exclusive with a > positional filename arg and -f arg) that accepts a full option > string, as well as the original syntax eg > > qemu-io --source driver=http,url=https://127.0.0.1/images,sslverify=off > qemu-io --source https://127.0.0.1/images/centos7.iso > qemu-io --source file=/home/berrange/demo.qcow2 > qemu-io --source /home/berrange/demo.qcow2 > > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > --- > qemu-io.c | 37 ++++++++++++++++++++++++++++++++++++- > 1 file changed, 36 insertions(+), 1 deletion(-) > > @@ -572,7 +590,24 @@ int main(int argc, char **argv) > flags |= BDRV_O_RDWR; > } > > - if ((argc - optind) == 1) { > + qopts = qemu_opts_find(&file_opts, NULL); > + if (qopts) { > + char *file; > + if (opts) { > + error_report("--source and -f are mutually exclusive"); > + exit(1); > + } > + if ((argc - optind) == 1) { What if I specify more than one option? Shouldn't this be >=, rather than ==? Also, the inner () are redundant. > + error_report("--source and filename are mutually exclusive"); > + exit(1); > + } > + file = g_strdup(qemu_opt_get(qopts, "file")); > + qemu_opt_unset(qopts, "file"); > + opts = qemu_opts_to_qdict(qopts, NULL); > + qemu_opts_reset(&file_opts); > + openfile(file, flags, opts); > + g_free(file); > + } else if ((argc - optind) == 1) { Pre-existing, but the inner () are redundant. > openfile(argv[optind], flags, opts); > } > command_loop(); > -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature