Mercurial > piecrust2
diff piecrust/main.py @ 909:eed19a80c00e
chef: Allow multiple config variants to be applied.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 23 Jul 2017 18:01:26 -0700 |
parents | 4850f8c21b6e |
children | 45ad976712ec |
line wrap: on
line diff
--- a/piecrust/main.py Sun Jul 23 08:31:05 2017 -0700 +++ b/piecrust/main.py Sun Jul 23 18:01:26 2017 -0700 @@ -91,8 +91,9 @@ help="Makes the current command apply to a theme website.") parser.add_argument( '--config', - dest='config_variant', - help="The configuration variant to use for this command.") + action='append', + dest='config_variants', + help="The configuration variant(s) to use for this command.") parser.add_argument( '--config-set', nargs=2, @@ -209,8 +210,9 @@ cmd_name = pre_args.extra_args[0] if cmd_name in _command_caches: cache_key_str = _command_caches[cmd_name] - if pre_args.config_variant is not None: - cache_key_str += ',variant=%s' % pre_args.config_variant + if pre_args.config_variants: + for value in pre_args.config_variants: + cache_key_str += ',variant=%s' % value if pre_args.config_values: for name, value in pre_args.config_values: cache_key_str += ',%s=%s' % (name, value) @@ -233,7 +235,7 @@ root = None # Can't apply custom configuration stuff if there's no website. - if (pre_args.config_variant or pre_args.config_values) and not root: + if (pre_args.config_variants or pre_args.config_values) and not root: raise SiteNotFoundError( "Can't apply any configuration variant or value overrides, " "there is no website here.") @@ -248,7 +250,7 @@ cache=(not pre_args.no_cache), cache_key=cache_key, debug=pre_args.debug, - config_variant=pre_args.config_variant, + config_variants=pre_args.config_variants, config_values=pre_args.config_values) app = appfactory.create() else: