Files
modules/init/cmake.in
Xavier Delaruelle 5aaedd85ca init: enclose installation path references
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.
2022-06-16 18:57:30 +02:00

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()