summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralalazo <massimiliano.culpo@googlemail.com>2016-05-23 10:54:48 +0200
committeralalazo <massimiliano.culpo@googlemail.com>2016-05-23 10:54:48 +0200
commit0890ac4507e5568d1d5a5da9bbd3c729238a9b3a (patch)
tree345784a5da443e0963ce0262fc850613a769bdff
parent3ab56a188e83054420d9004be1c6d07276c91375 (diff)
downloadspack-0890ac4507e5568d1d5a5da9bbd3c729238a9b3a.tar.gz
spack-0890ac4507e5568d1d5a5da9bbd3c729238a9b3a.tar.bz2
spack-0890ac4507e5568d1d5a5da9bbd3c729238a9b3a.tar.xz
spack-0890ac4507e5568d1d5a5da9bbd3c729238a9b3a.zip
modules : explicit module file load from configuration files
-rw-r--r--lib/spack/spack/config.py1
-rw-r--r--lib/spack/spack/modules.py10
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index ec37bd290c..c3133697f4 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -286,6 +286,7 @@ section_schemas = {
'autoload': {'$ref': '#/definitions/dependency_selection'},
'prerequisites': {'$ref': '#/definitions/dependency_selection'},
'conflict': {'$ref': '#/definitions/array_of_strings'},
+ 'load': {'$ref': '#/definitions/array_of_strings'},
'environment': {
'type': 'object',
'default': {},
diff --git a/lib/spack/spack/modules.py b/lib/spack/spack/modules.py
index d2b819e80a..9fa92a593f 100644
--- a/lib/spack/spack/modules.py
+++ b/lib/spack/spack/modules.py
@@ -381,6 +381,8 @@ class EnvModule(object):
for x in filter_blacklisted(
module_configuration.pop('autoload', []), self.name):
module_file_content += self.autoload(x)
+ for x in module_configuration.pop('load', []):
+ module_file_content += self.autoload(x)
for x in filter_blacklisted(
module_configuration.pop('prerequisites', []), self.name):
module_file_content += self.prerequisite(x)
@@ -402,8 +404,12 @@ class EnvModule(object):
return tuple()
def autoload(self, spec):
- m = type(self)(spec)
- return self.autoload_format.format(module_file=m.use_name)
+ if not isinstance(spec, str):
+ m = type(self)(spec)
+ module_file = m.use_name
+ else:
+ module_file = spec
+ return self.autoload_format.format(module_file=module_file)
def prerequisite(self, spec):
m = type(self)(spec)