patch to use net options

LEOCADIE Grégory gleocadie at idealx.com
Tue May 24 14:58:18 GMT 2005


Henrik Nordstrom wrote:

> On Tue, 24 May 2005, Rafal Szczesniak wrote:
>
>>> It seems that there's no subcommand options support in popt. I can 
>>> make a mistake but I didn't find any.
>>
>>
>> OK, thanks. We'll probably need to do as I initially thought.
>
>
>> From my understanding of the problem one is supposed to just grab the 
>
> remaining arguments and send them as input to the sub-command which 
> then does it's own popt processing. To support common options include 
> the common options in the sub-commands popt table with the help of the 
> POPT_ARG_INCLUDE_TABLE argInfo type.
>
> General structure:
>
>   main popt table called with initial argv in 
> POPT_CONTEXT_POSIXMEHARDER mode. This has the global options which 
> must/should go before the sub-command identifier.
>
>   when a non-option argument is encountered then it's the sub-command. 
> Grab the remaining arguments and send this as argv to the sub-command. 
> Thanks to POPT_CONTEXT_POSIXMEHARDER any options after the sub-command 
> is left intact.
>
>   in the sub-command popt table (parsed with POPT_CONTEXT_KEEP_FIRST 
> as there is no argv[0] here), include the common options as popt 
> table(s) using POPT_ARG_INCLUDE_TABLE as appropriate for the 
> sub-command in question. More than one such group may be supported, 
> and includes may be nested to your liking.
>
>   Included common option tables preferably uses the callback mechanism 
> to process the options (POPT_ARG_CALLBACK) if special processing is 
> required. This way no common options will be returned to the 
> sub-command opion parser and the parsing of the common options is 
> completely hidden to the sub-command.
>
> This centralizes the common option groups quite nicely, only requiring 
> each sub-command to indicate which group(s) of common options it 
> supports in addition to it's own.
>
> Problems arises if there us sub-command specific options which may go 
> before the sub-command identifier. For sanity these should be handled 
> as global options available to all sub-commands.
>
> Only thing I see missing is a popt call to grab the remaining argc to 
> send to the sub-command. Only argv is available. Trivial count up to 
> NULL is sufficient but still oddly missing..
>
> An example program showing this use of popt for sub-command option 
> processing can be found here:
> <url:http://www.henriknordstrom.net/examples/popt_subcommand.c>
>
> Regards
> Henrik
>
I'm ok with this way and it works,but it looks weird to have and to 
write a command like this:  net -U toto%iscool share list -h 172.16.122.132
No?


Gregory LEOCADIE
IDEALX


More information about the samba-technical mailing list