diff options
author | Mark Doffman <mark.doffman@codethink.co.uk> | 2014-02-14 19:59:51 +0000 |
---|---|---|
committer | Mark Doffman <mark.doffman@codethink.co.uk> | 2014-02-17 20:47:54 +0000 |
commit | 16e5817857ba8d55a36737608fc588bfd0daf0d5 (patch) | |
tree | 54f8f15e731a5c0dfa76efea802e991a664bfd9a | |
parent | 8798712f0032e7c9e6b0017d6c25f1432ea0097b (diff) | |
download | cliapp-baserock/markdoffman/S10358/remove-automatic-help.tar.gz |
Add option not to add automatic '--help'baserock/markdoffman/S10358/remove-automatic-help
Allow apps to have custom '--help' options by
providing the ability to remove the automatic
'--help' and '--help-all' generation.
-rw-r--r-- | cliapp/settings.py | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/cliapp/settings.py b/cliapp/settings.py index 8072a31..cbdc294 100644 --- a/cliapp/settings.py +++ b/cliapp/settings.py @@ -424,7 +424,8 @@ class Settings(object): return name def build_parser(self, configs_only=False, arg_synopsis=None, - cmd_synopsis=None, deferred_last=[], all_options=False): + cmd_synopsis=None, deferred_last=[], all_options=False, + add_help_option=True): '''Build OptionParser for parsing command line.''' # Call a callback function unless we're in configs_only mode. @@ -454,7 +455,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. @@ -569,11 +571,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. @@ -637,7 +640,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 @@ -651,7 +654,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) |