
On 16.05.2011 10:56, Daniel P. Berrange wrote:
On Fri, May 13, 2011 at 05:18:27PM -0600, Eric Blake wrote:
On 05/13/2011 03:16 AM, Daniel P. Berrange wrote:
On Thu, May 12, 2011 at 06:29:12PM +0200, Michal Privoznik wrote:
+static const vshCmdOptDef opts_screenshot[] = { + {"domain", VSH_OT_DATA, VSH_OFLAG_REQ, N_("domain name, id or uuid")}, + {"file", VSH_OT_DATA, VSH_OFLAG_REQ, N_("where to store the screenshot")}, + {"screen", VSH_OT_INT, 0, N_("ID of a screen to take screenshot of")}, + {NULL, 0, 0, NULL} +}; +
I think it would be better if 'screenID' was a flag instead of a positional parameter, eg
screenshot --screen 1 myguest imagefile.png
But virsh _already_ handles all named arguments in any order. That is,
screenshot --screen 1 myguest imagefile.png screenshot myguest imagefile.png 1
are identical, at least with the above opts_screenshot (thanks to commit b9973f5).
I don't see how that could work, if you want to make filename optional. Since if you have
screenshot myguest 1 This is now understand as: take screenshot of myguest, screenID=0 (by default) and store it into file named '1'.
Running 'screenshot --screen 1 f14' would produce an error: <file> required. I agree not to make arguments positional, and basically screenID is not. It is an added value that it can be specified as 3rd argument. If we make --file optional (and generate it), this will still work as expected: 'screenshot --screen 1 f14' would not produce any error but file instead. Moreover, screenshot f14 would take screenshot of screenID=0 and store it into file with generated file.
it can't determine whether '1' is a screen number or filename. Thus we have to use --screen for this
Daniel
Michal