[libvirt] [PATCH v2] virsh: fix incorrect argument errors for long options
Eric Blake
eblake at redhat.com
Mon Apr 29 20:48:06 UTC 2013
On 04/29/2013 11:27 AM, Ján Tomko wrote:
> For long options, print:
> * the option as specified by the user if it's unknown
> * the cannoncial long option if its argument is not
s/cannonical/canonical/
> a number (and should be)
>
> And for missing arguments, print both the short and
> the long option name.
> (Doing only one of those would require either parsing
> argv ourselves or let getopt print the errors, since
> we can't tell long and short options apart by optopt
> or longindex)
>
> https://bugzilla.redhat.com/show_bug.cgi?id=949373
Listing some before-and-after in the commit message would be very
helpful. Here's what I tried:
Unknown option:
Before:
$ virsh -x
error: unsupported option '-x'. See --help.
$ virsh --x
error: unsupported option '-
$ virsh -rx
error: unsupported option '-x'. See --help.
After:
$ tools/virsh -x
error: unsupported option '-x'. See --help.
$ tools/virsh --x
error: unsupported option '--x'. See --help.
$ tools/virsh -rx
error: unsupported option '-x'. See --help.
No worse behavior, and definite improvement on the unknown long option.
Incorrect argument:
Before:
$ virsh --d=a
error: option -d takes a numeric argument
$ virsh --deb=a
error: option -d takes a numeric argument
After:
$ tools/virsh -da
error: option -d takes a numeric argument
$ tools/virsh --deb=a
error: option --debug takes a numeric argument
Much nicer on the long option :)
Missing argument:
Before:
$ virsh -d
error: option '-d' requires an argument
$ virsh --deb
error: option '-d' requires an argument
After:
$ tools/virsh -d
error: option '-d'/'--debug' requires an argument
$ tools/virsh --deb
error: option '-d'/'--debug' requires an argument
A bit more verbose, but now it is obvious when a long option was typed,
rather than making you figure out what short option matches your long
option. And I agree that improving it would require reimplementing too
much of getopt_long, so I can live with it.
ACK. Reasonable for 1.0.5
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 621 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20130429/c9077a6c/attachment-0001.sig>
More information about the libvir-list
mailing list