summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Doffman <mark.doffman@codethink.co.uk>2014-02-14 19:59:51 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2015-09-23 16:53:58 +0100
commit62b7f6d7cbc2dae1a35dd6d26db0233f46dd897f (patch)
tree4977edb9938be7901f8d17fefc3cb7314295cbb4
parent944b42381f0e1f94c8c9d43385eaa42a9eb74121 (diff)
downloadcliapp-baserock/sam/python3+custom-help.tar.gz
Add option not to add automatic '--help'baserock/sam/python3+custom-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.py22
1 files 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)