forked from envmodules/modules
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsh.in
77 lines (68 loc) · 2.21 KB
/
sh.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# shellcheck shell=sh
unset _mlshdbg;
# disable shell debugging for the run of this init file
if [ "${MODULES_SILENT_SHELL_DEBUG:-0}" = '1' ]; then
# immediately disable debugging to echo the less number of line possible
case "$-" in
*v*x*) set +vx; _mlshdbg='vx' ;;
*v*) set +v; _mlshdbg='v' ;;
*x*) set +x; _mlshdbg='x' ;;
*) _mlshdbg='' ;;
esac;
fi;
# define modules runtime quarantine configuration
@setquarvars@export MODULES_RUN_QUARANTINE='@RUN_QUARANTINE@'
@setquarvars@@export RUNENV_VAR='RUNENV_VAL'@
@notsetquarvars@#export MODULES_RUN_QUARANTINE='ENVVARNAME'
@notsetquarvars@
# setup quarantine if defined
unset _mlre _mlIFS;
if [ -n "${IFS+x}" ]; then
_mlIFS=$IFS;
fi;
IFS=' ';
for _mlv in ${MODULES_RUN_QUARANTINE:-}; do
if [ "${_mlv}" = "${_mlv##*[!A-Za-z0-9_]}" ] && [ "${_mlv}" = "${_mlv#[0-9]}" ]; then
if [ -n "$(eval 'echo ${'"$_mlv"'+x}')" ]; then
_mlre="${_mlre:-}__MODULES_QUAR_${_mlv}='$(eval 'echo ${'"$_mlv"'}')' ";
fi;
_mlrv="MODULES_RUNENV_${_mlv}";
_mlre="${_mlre:-}${_mlv}='$(eval 'echo ${'"$_mlrv"':-}')' ";
fi;
done;
if [ -n "${_mlre:-}" ]; then
_mlre="eval ${_mlre}__MODULES_QUARANTINE_SET=1 ";
fi;
# define module command and surrounding initial environment (default value
# for MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init config files)
# shellcheck disable=2086 # word splitting expected on _mlre
_mlcode=$(${_mlre:-}@TCLSH@ '@libexecdir@/modulecmd.tcl' sh autoinit)
_mlret=$?
# clean temp variables used to setup quarantine
if [ -n "${_mlIFS+x}" ]; then
IFS=$_mlIFS;
unset _mlIFS;
else
unset IFS;
fi;
unset _mlre _mlv _mlrv
# no environment alteration if the above autoinit command failed
if [ $_mlret -eq 0 ]; then
eval "$_mlcode"
# if sh is bash, export functions to get them defined in sub-shells
# shellcheck disable=SC3045
if [ "${BASH:-}" != '' ]; then
export -f _module_raw
export -f module
if [ "$(type -t ml)" = 'function' ]; then
export -f ml
fi
fi
fi
unset _mlcode _mlret
# restore shell debugging options if disabled
if [ -n "${_mlshdbg:-}" ]; then
set -"$_mlshdbg";
unset _mlshdbg;
fi;
# vim:set tabstop=3 shiftwidth=3 expandtab autoindent syntax=sh :