From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58786) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aC2l5-0004cg-6w for qemu-devel@nongnu.org; Thu, 24 Dec 2015 05:04:32 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aC2l3-00051i-W1 for qemu-devel@nongnu.org; Thu, 24 Dec 2015 05:04:31 -0500 Date: Thu, 24 Dec 2015 10:04:20 +0000 From: "Daniel P. Berrange" Message-ID: <20151224100419.GA21727@redhat.com> References: <1450782389-17326-1-git-send-email-berrange@redhat.com> <20151222174159.GM10082@redhat.com> <56798D5B.4040800@redhat.com> <20151222180755.GN10082@redhat.com> <56799213.6090506@redhat.com> <20151223165553.GR20028@redhat.com> <567AE1F6.4090107@redhat.com> <20151223192313.GT20028@redhat.com> <359302351.2082474.1450902018470.JavaMail.zimbra@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <359302351.2082474.1450902018470.JavaMail.zimbra@redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 7/7] qemu-img: allow specifying image as a set of options args Reply-To: "Daniel P. Berrange" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Kevin Wolf , qemu-block@nongnu.org, qemu-devel@nongnu.org, Markus Armbruster , Andreas =?utf-8?Q?F=C3=A4rber?= On Wed, Dec 23, 2015 at 03:20:18PM -0500, Paolo Bonzini wrote: >=20 >=20 > ----- Original Message ----- > > From: "Daniel P. Berrange" > > To: "Paolo Bonzini" > > Cc: "Eric Blake" , "Kevin Wolf" = , qemu-block@nongnu.org, qemu-devel@nongnu.org, > > "Markus Armbruster" , "Andreas F=C3=A4rber" > > Sent: Wednesday, December 23, 2015 8:23:13 PM > > Subject: Re: [Qemu-devel] [PATCH 7/7] qemu-img: allow specifying imag= e as a set of options args > >=20 > > On Wed, Dec 23, 2015 at 07:03:34PM +0100, Paolo Bonzini wrote: > > >=20 > > >=20 > > > 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 int= erpret > > > >>> > > the positional arguments. ie without --source-opts we use = the > > > >>> > > historic syntax, but with --source-opts, we assume the full > > > >>> > > QemuOpts > > > >>> > > syntax. > > > >> >=20 > > > >> > Oh, nice compromise. It's relatively discoverable (grep --help > > > >> > output), > > > >> > preserves back-compat of old scripts, and offers the full powe= r for > > > >> > clients that want the full power. > > > > I've implemented this now and it makes the patches soooo much sim= pler > > > > too, so an added win. > > >=20 > > > Hmm, looks like I'm a bit late, but here's another possibility: mak= ing > > > --source-options (aka -o) take an argument, and if you specify both > > > --source-options and the positional argument, the latter is added a= s a > > > "file" key. > > >=20 > > > This way you can do "qemu-img info --object secret... -o secret=3Df= oo > > > iscsi://foo/". > >=20 > > 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=3Dbar' is not really going to say > > which positional file it applies to. >=20 > That would be -o/-O, like -f/-F. That only works for two files, unless you keep inventing yet more characters for the 3rd, 4th, ... file - 'convert' takes an arbitrary number of files. Regards, Daniel --=20 |: http://berrange.com -o- http://www.flickr.com/photos/dberrange= / :| |: http://libvirt.org -o- http://virt-manager.or= g :| |: http://autobuild.org -o- http://search.cpan.org/~danberr= / :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vn= c :|