Fix shell integration with environment-modules@4 (#10736)

This commit is contained in:
Michael Kuhn 2019-02-28 13:22:44 +01:00 committed by Massimiliano Culpo
parent 4e80977506
commit 617c1a3706
2 changed files with 11 additions and 5 deletions

View file

@ -46,7 +46,7 @@ def bootstrap(parser, args, **kwargs):
# Define requirement dictionary defining general specs which need
# to be satisfied, and the specs to install when the general spec
# isn't satisfied.
requirement_dict = {'environment-modules': 'environment-modules@3.2.10~X'}
requirement_dict = {'environment-modules': 'environment-modules~X'}
for requirement in requirement_dict:
installed_specs = spack.store.db.query(requirement)

View file

@ -272,10 +272,16 @@ if [ "${need_module}" = "yes" ]; then
# _sp_module_prefix is set by spack --print-sh-vars
if [ "${_sp_module_prefix}" != "not_installed" ]; then
#activate it!
export MODULE_PREFIX=${_sp_module_prefix}
_spack_pathadd PATH "${MODULE_PREFIX}/Modules/bin"
module() { eval `${MODULE_PREFIX}/Modules/bin/modulecmd ${SPACK_SHELL} $*`; }
# activate it!
# environment-modules@4: has a bin directory inside its prefix
MODULE_PREFIX_BIN="${_sp_module_prefix}/bin"
if [ ! -d "${MODULE_PREFIX_BIN}" ]; then
# environment-modules@3 has a nested bin directory
MODULE_PREFIX_BIN="${_sp_module_prefix}/Modules/bin"
fi
export MODULE_PREFIX_BIN
_spack_pathadd PATH "${MODULE_PREFIX_BIN}"
module() { eval `${MODULE_PREFIX_BIN}/modulecmd ${SPACK_SHELL} $*`; }
fi;
else
eval `spack --print-shell-vars sh`