mirror of
https://github.com/envmodules/modules.git
synced 2026-06-10 00:56:30 +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.
28 lines
1.1 KiB
R
28 lines
1.1 KiB
R
# define modules runtime quarantine configuration
|
|
@setquarvars@Sys.setenv('MODULES_RUN_QUARANTINE'='@RUN_QUARANTINE@')
|
|
@setquarvars@@Sys.setenv('RUNENV_VAR'='RUNENV_VAL')@
|
|
@notsetquarvars@#Sys.setenv('MODULES_RUN_QUARANTINE'='ENVVARNAME')
|
|
@notsetquarvars@
|
|
# setup quarantine if defined
|
|
mlre <- ''
|
|
if (!is.na(Sys.getenv('MODULES_RUN_QUARANTINE', unset=NA))) {
|
|
for (mlv in strsplit(Sys.getenv('MODULES_RUN_QUARANTINE'), ' ')[[1]]) {
|
|
if (grepl('^[A-Za-z_][A-Za-z0-9_]*$', mlv)) {
|
|
if (!is.na(Sys.getenv(mlv, unset=NA))) {
|
|
mlre <- paste0(mlre, "__MODULES_QUAR_", mlv, "='", Sys.getenv(mlv), "' ")
|
|
}
|
|
mlrv <- paste0('MODULES_RUNENV_', mlv)
|
|
mlre <- paste0(mlre, mlv, "='", Sys.getenv(mlrv), "' ")
|
|
}
|
|
}
|
|
if (mlre != '') {
|
|
mlre <- paste0('env ', mlre, '__MODULES_QUARANTINE_SET=1 ')
|
|
}
|
|
}
|
|
|
|
# define module command and surrounding initial environment (default value
|
|
# for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init config files)
|
|
cmdpipe <- pipe(paste0(mlre, '@TCLSH@ "@libexecdir@/modulecmd.tcl" r autoinit'))
|
|
eval(parse(cmdpipe))
|
|
close(cmdpipe)
|