From bcf38476faa9bf3c35fa24df81d2f9f732a2ee79 Mon Sep 17 00:00:00 2001 From: Peter Eckersley Date: Mon, 8 Feb 2016 16:59:11 -0800 Subject: [PATCH] Fix bugs, clean up plumbing. --- letsencrypt/cli.py | 14 +++++++++----- letsencrypt/configuration.py | 5 ++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/letsencrypt/cli.py b/letsencrypt/cli.py index 12aa69b46..79a27a200 100644 --- a/letsencrypt/cli.py +++ b/letsencrypt/cli.py @@ -744,8 +744,8 @@ def _set_by_cli(var): plugins = plugins_disco.PluginsRegistry.find_all() # reconstructed_args == sys.argv[1:], or whatever was passed to main() reconstructed_args = _parser.args + [_parser.verb] - default_args = prepare_and_parse_args(plugins, reconstructed_args, detect_defaults=True) - _set_by_cli.detector = configuration.NamespaceConfig(default_args, fake=True) + _set_by_cli.detector = prepare_and_parse_args(plugins, reconstructed_args, + detect_defaults=True) try: # Is detector.var something that isn't false? @@ -758,7 +758,7 @@ def _set_by_cli(var): return True # Special case: vars like --no-redirect that get set True -> False # default to None; False means they were set - elif var in _set_by_cli.detector.namespace.store_false_vars and change_detected is not None: + elif var in _set_by_cli.detector.store_false_vars and change_detected is not None: return True else: return False @@ -1154,6 +1154,9 @@ class HelpfulArgumentParser(object): raise errors.Error("--dry-run currently only works with the " "'certonly' or 'renew' subcommands (%r)" % self.verb) parsed_args.break_my_certs = parsed_args.staging = True + + if self.detect_defaults: # plumbing + parsed_args.store_false_vars = self.store_false_vars return parsed_args @@ -1476,8 +1479,9 @@ def prepare_and_parse_args(plugins, args, detect_defaults=False): # parser (--help should display plugin-specific options last) _plugins_parsing(helpful, plugins) - global _parser # pylint: disable=global-statement - _parser = helpful + if not detect_defaults: + global _parser # pylint: disable=global-statement + _parser = helpful return helpful.parse_args() diff --git a/letsencrypt/configuration.py b/letsencrypt/configuration.py index 979d5e985..2bbf1b019 100644 --- a/letsencrypt/configuration.py +++ b/letsencrypt/configuration.py @@ -34,7 +34,7 @@ class NamespaceConfig(object): """ zope.interface.implements(interfaces.IConfig) - def __init__(self, namespace, fake=False): + def __init__(self, namespace): self.namespace = namespace self.namespace.config_dir = os.path.abspath(self.namespace.config_dir) @@ -42,8 +42,7 @@ class NamespaceConfig(object): self.namespace.logs_dir = os.path.abspath(self.namespace.logs_dir) # Check command line parameters sanity, and error out in case of problem. - if not fake: - check_config_sanity(self) + check_config_sanity(self) def __getattr__(self, name): return getattr(self.namespace, name)