[libvirt] [PATCH] vsh: print help more often

Eric Blake eblake at redhat.com
Wed Oct 21 12:35:48 UTC 2015

On 10/21/2015 06:26 AM, Eric Blake wrote:

>> In this case migrate help is printed out. So far so good.
>> However, you start writing this long migrate command (I bet you
>> know the arguments  there can get quite long), but then, at some
>> point you need to print out the help. Something like this:
>>   virsh # migrate --copy-storage-all --migrate-disks --help
>> In this specific case you just want to see the format that
>> --migrate-disks accepts. So you append --help and expect help to
>> be printed out. Well, it will not, because "--help" is taken as
>> data to --migrate-disks.
> But this is the behavior of ALL applications that use getopt_long():
> $ ls --block-size --help
> ls: invalid --block-size argument '--help'
> NACK; if you use --help in the position where it will be eaten as the
> argument to an incomplete long option, that's too bad for you, but we
> shouldn't special case it differently than getopt_long().

By the way, you CAN get in the habit of typing '--help --help' any time
you want help but don't know if the first --help will just end up as
filler to an incomplete option.  It doesn't globally work, but happens
to work for virsh.  For 'virsh migrate --copy-storage-all
--migrate-disks --help --help', we get help output (since we do all
option parsing before any interpretation of the options, then make sure
to interpret --help before any other option once --help is seen in an
option position).  Whereas with my ls example, 'ls --block-size --help
--help' doesn't work; arguably something that could be patched in
coreutils to be more user-friendly but not our problem here.

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: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20151021/a78c6765/attachment-0001.sig>

More information about the libvir-list mailing list