On Wed, Dec 23, 2015 at 07:03:34PM +0100, Paolo Bonzini wrote: > > > On 23/12/2015 17:55, Daniel P. Berrange wrote: > >>> > > A third option would be to keep using positional arguments, but > >>> > > add a '--source-opts' *boolean* flag to indicate how to interpret > >>> > > the positional arguments. ie without --source-opts we use the > >>> > > historic syntax, but with --source-opts, we assume the full QemuOpts > >>> > > syntax. > >> > > >> > Oh, nice compromise. It's relatively discoverable (grep --help output), > >> > preserves back-compat of old scripts, and offers the full power for > >> > clients that want the full power. > > I've implemented this now and it makes the patches soooo much simpler > > too, so an added win. > > Hmm, looks like I'm a bit late, but here's another possibility: making > --source-options (aka -o) take an argument, and if you specify both > --source-options and the positional argument, the latter is added as a > "file" key. > > This way you can do "qemu-img info --object secret... -o secret=foo > iscsi://foo/".
This gets somewhat messy for the commands which needs to accept more than one filename, eg 'compare' (2 files) and 'convert' (any number of files)'. eg if you have 3 positional file names and want to set an option on the 2nd file, '-o foo=bar' is not really going to say which positional file it applies to. The style I just implemented with the boolean '--image-opts' flag avoids this messiness nicely. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|