"""
global OPTS
OPTS, args = OPTPARSE.parse_args()
+ OPTPARSE.show_global_opts = False
## It's tempting to load the configuration here. Don't do that. Some
## contexts will want to check that the command line was handled properly
## upstream before believing it for anything, such as executing arbitrary
if ctx is None: ctx = 'userv'
else:
D.opendb()
- if ctx is None: ctx = 'admin'
+ if ctx is None:
+ ctx = 'admin'
+ OPTPARSE.show_global_opts = True
with OUT.redirect_to(O.FileOutput()):
OPTPARSE.dispatch(ctx, args)
"""
def __init__(me, usage = '%prog [-OPTIONS] COMMAND [ARGS ...]',
- contexts = ['cli'], commands = [], *args, **kw):
+ contexts = ['cli'], commands = [], show_global_opts = True,
+ *args, **kw):
"""
Constructor for the options parser. As for the superclass, but with an
additional argument CONTEXTS used for initializing the `help' command.
## eat the subcommand's arguments.
me.disable_interspersed_args()
me.context = list(contexts)[0]
+ me.show_global_opts = show_global_opts
## Provide a default `help' command.
me._cmds = {}
synopses for the available subcommands.
"""
if file is None: file = SYS.stdout
- super(SubcommandOptionParser, me).print_help(file = file, *args, **kw)
+ if me.show_global_opts:
+ super(SubcommandOptionParser, me).print_help(file = file, *args, **kw)
+ else:
+ file.write(me.get_usage() + '\n')
+ file.write(me.get_description())
file.write('\nCommands:\n')
for sub in sorted(set(me._cmds.values()), key = lambda c: c.name):
if sub.desc is None or me.context not in sub.contexts: continue