summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/modules/common.py19
1 files changed, 7 insertions, 12 deletions
diff --git a/lib/spack/spack/modules/common.py b/lib/spack/spack/modules/common.py
index 930bce8a92..dfcd20b0ce 100644
--- a/lib/spack/spack/modules/common.py
+++ b/lib/spack/spack/modules/common.py
@@ -170,17 +170,12 @@ def merge_config_rules(configuration, spec):
Returns:
dict: actions to be taken on the spec passed as an argument
"""
-
- # Get the top-level configuration for the module type we are using
- module_specific_configuration = copy.deepcopy(configuration)
-
- # Construct a dictionary with the actions we need to perform on the spec
- # passed as a parameter
-
+ # Construct a dictionary with the actions we need to perform on the spec passed as a parameter
+ spec_configuration = {}
# The keyword 'all' is always evaluated first, all the others are
# evaluated in order of appearance in the module file
- spec_configuration = module_specific_configuration.pop("all", {})
- for constraint, action in module_specific_configuration.items():
+ spec_configuration.update(copy.deepcopy(configuration.get("all", {})))
+ for constraint, action in configuration.items():
if spec.satisfies(constraint):
if hasattr(constraint, "override") and constraint.override:
spec_configuration = {}
@@ -200,14 +195,14 @@ def merge_config_rules(configuration, spec):
# configuration
# Hash length in module files
- hash_length = module_specific_configuration.get("hash_length", 7)
+ hash_length = configuration.get("hash_length", 7)
spec_configuration["hash_length"] = hash_length
- verbose = module_specific_configuration.get("verbose", False)
+ verbose = configuration.get("verbose", False)
spec_configuration["verbose"] = verbose
# module defaults per-package
- defaults = module_specific_configuration.get("defaults", [])
+ defaults = configuration.get("defaults", [])
spec_configuration["defaults"] = defaults
return spec_configuration