summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Doffman <mark.doffman@codethink.co.uk>2014-02-14 19:59:51 +0000
committerMark Doffman <mark.doffman@codethink.co.uk>2014-02-17 20:47:54 +0000
commit16e5817857ba8d55a36737608fc588bfd0daf0d5 (patch)
tree54f8f15e731a5c0dfa76efea802e991a664bfd9a
parent8798712f0032e7c9e6b0017d6c25f1432ea0097b (diff)
downloadcliapp-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.py22
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)