From 62b7f6d7cbc2dae1a35dd6d26db0233f46dd897f Mon Sep 17 00:00:00 2001 From: Mark Doffman Date: Fri, 14 Feb 2014 19:59:51 +0000 Subject: Add option not to add automatic '--help' Allow apps to have custom '--help' options by providing the ability to remove the automatic '--help' and '--help-all' generation. --- cliapp/settings.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/cliapp/settings.py b/cliapp/settings.py index 298cd6a..41a5670 100644 --- a/cliapp/settings.py +++ b/cliapp/settings.py @@ -456,7 +456,8 @@ class Settings(object): return name def build_parser(self, configs_only=False, arg_synopsis=None, - cmd_synopsis=None, deferred_last=None, all_options=False): + cmd_synopsis=None, deferred_last=None, all_options=False, + add_help_option=True): '''Build OptionParser for parsing command line.''' # Call a callback function unless we're in configs_only mode. @@ -485,7 +486,8 @@ class Settings(object): formatter=FormatHelpParagraphs(), usage=usage, description=description, - epilog=self.epilog) + epilog=self.epilog, + add_help_option=add_help_option) # Create all OptionGroup objects. This way, the user code can # add settings to built-in option groups. @@ -605,11 +607,12 @@ class Settings(object): sys.stdout.write(pp.format_help()) sys.exit(0) - config_group.add_option( - '--help-all', - action='callback', - help='show all options', - callback=defer_last(maybe(help_all))) + if add_help_option: + config_group.add_option( + '--help-all', + action='callback', + help='show all options', + callback=defer_last(maybe(help_all))) # Add other options, from the user-defined and built-in # settingses. @@ -673,7 +676,7 @@ class Settings(object): def parse_args(self, args, parser=None, suppress_errors=False, configs_only=False, arg_synopsis=None, cmd_synopsis=None, compute_setting_values=None, - all_options=False): + all_options=False, add_help_option=True): '''Parse the command line. Return list of non-option arguments. ``args`` would usually @@ -687,7 +690,8 @@ class Settings(object): arg_synopsis=arg_synopsis, cmd_synopsis=cmd_synopsis, deferred_last=deferred_last, - all_options=all_options) + all_options=all_options, + add_help_option=add_help_option) if suppress_errors: p.error = lambda msg: sys.exit(1) -- cgit v1.2.1