Re: [PATCH 1/2] parse-options: Add support for dumping out long options

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On 04/11/2012 03:51 AM, Felipe Contreras wrote:
> On Wed, Apr 11, 2012 at 1:29 PM, Stephen Boyd <bebarino@xxxxxxxxx> wrote:
>> The bash completion script wants to know what the long options are for a
>> certain command at runtime. Add a magical long option that nobody could
>> possibly ever use (--dump-raw-long-options) to get this information.
> I thought about doing this, but I would like more than just dumping
> the options. In zsh one can show more than just the options; each
> option can have a description.

Cool. I don't use zsh but it sounds interesting. Perhaps the magical
long option should grow an optional argument? i.e.


which would dump the options in a format that zsh would like?

Alternatively, we can make a tiny option description grammar that's
easily parsed. I probably won't have time for this any time soon though.

> I was thinking on something like 'git help --raw'. We also need
> something like that to list all the plumbing commands, and options for
> certain options, like merge strategies, and so on. Perhaps it would
> even make sense to have a new 'git raw-help' command.

I'd like to avoid tying the long option stuff to git help so that other
users of parse-options besides git (perhaps perf?) get the dumping
support for free. Actually it works well for 'git notes <subcommand>'
right now so it probably has to stay tied to each git command. Plus I
think we've covered merge strategies and command lists already so I
don't know how useful 'git help --raw' would be.

I have been pondering ways to get all the possible config keys
dynamically. That would remove a huge list (~2000 lines) in the
completion script that always needs updating. Doing that would probably
require some sort of grep over all the source files and a special key
comparison function to look for (#define CONFIG_MATCH strcmp might
work). Even then I don't know how we would handle color.branch.* and
similar things. Maybe we would just do those by hand.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at

[Newbies FAQ]     [Linux Kernel Development]     [Free Online Dating]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Free Online Dating]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]     [Linux Resources]

Add to Google