-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnpa-moduleswitch.bash
117 lines (84 loc) · 2.35 KB
/
npa-moduleswitch.bash
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
script=$(tmp_file)
cat <<EOF > $script
#!/bin/bash
# This script enables the change between modules
# First a function to kill any ENV-vars that might be contained in
# the module env
#function _switch_modules_clean {
# Unset env's from ENV-MODULES
unset MODULE_VERSION
unset MODULE_VERSION_STACK
unset MODULESHOME
unset LOADEDMODULES
unset MODULEPATH
# Unset env's from Lmod
unset MODULEPATH_ROOT
unset MODULEPATH
unset BASH_ENV
unset SET_TITLE_BAR
unset SHOST
unset PROMPT_COMMAND
for e in \$(env | grep _ModuleTable | awk -F = '{print \$1}') ; do
eval "unset \$e"
done
for e in \$(env | grep -e LMOD -e _LMOD -e __LMOD | awk -F = '{print \$1}') ; do
eval "unset \$e"
done
for e in \$(env | grep TACC | awk -F = '{print \$1}') ; do
eval "unset \$e"
done
# Unset functions from ENV-MODULES
unset module
# Unset functions from Lmod
unset module
unset ml
unset clearMT
unset xSetTitleLmod
#}
EOF
pack_cmd "mv $script $(pack_get --prefix)/bin/_switch_modules_clean"
script=$(tmp_file)
cat <<EOF > $script
#!/bin/bash
# Function to reinstall old modulepath
#function _switch_reuse_modulepath {
if [ -n "\$_SWITCH_NPA_MODPATH" ]; then
for p in \${_SWITCH_NPA_MODPATH//:/ } ; do
[ -z "\${p// /}" ] && continue
module unuse \$p
module use --append \$p
done
unset _SWITCH_NPA_MODPATH
fi
#}
EOF
pack_cmd "mv $script $(pack_get --prefix)/bin/_switch_reuse_modulepath"
script=$(tmp_file)
cat <<EOF > $script
#!/bin/bash
# Function to load Lmod
#function switch2lmod {
module purge 2>/dev/null
module --force purge 2>/dev/null
export _SWITCH_NPA_MODPATH="\$MODULEPATH"
source $(pack_get --prefix)/bin/_switch_modules_clean
source $(pack_get --prefix lmod)/lmod/lmod/init/bash
source $(pack_get --prefix)/bin/_switch_reuse_modulepath
#}
EOF
pack_cmd "mv $script $(pack_get --prefix)/bin/switch2lmod"
script=$(tmp_file)
cat <<EOF > $script
#!/bin/bash
# Function to load Modules
#function switch2em {
module purge 2>/dev/null
module --force purge 2>/dev/null
export _SWITCH_NPA_MODPATH="\$MODULEPATH"
source $(pack_get --prefix)/bin/_switch_modules_clean
source $(pack_get --prefix modules)/Modules/default/init/bash
source $(pack_get --prefix)/bin/_switch_reuse_modulepath
#}
EOF
pack_cmd "mv $script $(pack_get --prefix)/bin/switch2em"
unset script