mirror of
https://github.com/envmodules/modules.git
synced 2026-05-30 00:12:31 +08:00
Update initialization, profile and completion scripts to enclose all references to the installation paths. Enclosing modulecmd.tcl installation path this way is not effective with the quarantine mechanism that implies a double shell code evaluation. So it is advised not to install Modules in a path containing a whitespace character if the quarantine mechanism is needed.
35 lines
1.3 KiB
Plaintext
35 lines
1.3 KiB
Plaintext
# define modules runtime quarantine configuration
|
|
@setquarvars@set(ENV{MODULES_RUN_QUARANTINE} "@RUN_QUARANTINE@")
|
|
@setquarvars@@set(ENV{RUNENV_VAR} "RUNENV_VAL")@
|
|
@notsetquarvars@#set(ENV{MODULES_RUN_QUARANTINE} "ENVVARNAME")
|
|
@notsetquarvars@
|
|
# setup quarantine if defined
|
|
set(_mlre "")
|
|
if(DEFINED ENV{MODULES_RUN_QUARANTINE})
|
|
string(REPLACE " " ";" _mlv_list "$ENV{MODULES_RUN_QUARANTINE}")
|
|
foreach(_mlv ${_mlv_list})
|
|
if(${_mlv} MATCHES "^[A-Za-z_][A-Za-z0-9_]*$")
|
|
if(DEFINED ENV{${_mlv}})
|
|
set(_mlre "${_mlre}__MODULES_QUAR_${_mlv}=$ENV{${_mlv}};")
|
|
endif()
|
|
set(_mlrv "MODULES_RUNENV_${_mlv}")
|
|
set(_mlre "${_mlre}${_mlv}=$ENV{${_mlrv}};")
|
|
endif()
|
|
endforeach()
|
|
if (NOT "${_mlre}" STREQUAL "")
|
|
set(_mlre "env;${_mlre}__MODULES_QUARANTINE_SET=1;")
|
|
endif()
|
|
endif()
|
|
|
|
# define module command and surrounding initial environment (default value
|
|
# for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init config files)
|
|
execute_process(COMMAND mktemp -t moduleinit.cmake.XXXXXXXXXXXX
|
|
OUTPUT_VARIABLE tempfile_name
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
execute_process(COMMAND ${_mlre} @TCLSH@ "@libexecdir@/modulecmd.tcl" cmake autoinit
|
|
OUTPUT_FILE ${tempfile_name})
|
|
if(EXISTS ${tempfile_name})
|
|
include(${tempfile_name})
|
|
file(REMOVE ${tempfile_name})
|
|
endif()
|