* bash-module-env.sh: Update was required due to incomplete pre-existing
MODULEPATH in some of Turing's compute nodes.
This commit is contained in:
@@ -1,5 +1,22 @@
|
||||
# -*- bash -*-
|
||||
#
|
||||
# BASH support scriplet for environment modules.
|
||||
#
|
||||
# Simply "source" this script with "init" argument,
|
||||
# then you can use "module" command from the batch script.
|
||||
#
|
||||
# Example (from within your batch script):
|
||||
#
|
||||
# source ~/local/bash-module-env.sh init
|
||||
# module load gcc
|
||||
#
|
||||
# Optional: if you want to restore the modules listed in $LOADEDMODULES
|
||||
# (which will need to be passed on to the script via "-v LOADEDMODULES" argument
|
||||
# when qsub-ing, then use "restore" argment instead:
|
||||
#
|
||||
# Example (from within your batch script):
|
||||
#
|
||||
# source ~/local/bash-module-env.sh restore
|
||||
#
|
||||
|
||||
# Some cluster defaults (may change over time)
|
||||
@@ -17,7 +34,7 @@ MODULEPATH_DEFAULT=/cm/local/modulefiles:/cm/shared/modulefiles:/cm/shared/compi
|
||||
RestoreModuleEnv () {
|
||||
local LOADEDMODULES_SAVE
|
||||
: ${MODULESHOME:=$MODULESHOME_DEFAULT}
|
||||
: ${MODULEPATH:=$MODULEPATH_DEFAULT}
|
||||
_AppendPaths MODULEPATH "$MODULEPATH_DEFAULT"
|
||||
export MODULESHOME
|
||||
export MODULEPATH
|
||||
|
||||
@@ -39,15 +56,44 @@ RestoreModuleEnv () {
|
||||
InitModuleEnv () {
|
||||
# Only do the initialization part of the module so "module" command
|
||||
# is available for the script
|
||||
local LOADEDMODULES_SAVE
|
||||
: ${MODULESHOME:=$MODULESHOME_DEFAULT}
|
||||
: ${MODULEPATH:=$MODULEPATH_DEFAULT}
|
||||
_AppendPaths MODULEPATH "$MODULEPATH_DEFAULT"
|
||||
#: ${MODULEPATH:=$MODULEPATH_DEFAULT}
|
||||
export MODULESHOME
|
||||
export MODULEPATH
|
||||
|
||||
source "$MODULESHOME/init/bash"
|
||||
}
|
||||
|
||||
_AppendPath () {
|
||||
# Usage: AppendPath VARNAME A_PATH
|
||||
# Appends a path element if it doesnt exist in current path
|
||||
local VAR VAL P
|
||||
VAR=$1
|
||||
P=$2
|
||||
VAL=$(eval "echo \"\$$VAR\"") # gets the current value of variable ${!VAR}
|
||||
case ":${VAL}:" in
|
||||
*:"${P}":*)
|
||||
;;
|
||||
*)
|
||||
VAL="${VAL}:${P}"
|
||||
eval "$VAR=\$VAL"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
_AppendPaths () {
|
||||
# Usage: AppendPath VARNAME PATHLIST
|
||||
# Appends one or more elements from PATHLIST for the elements that don't
|
||||
# exist in current path
|
||||
local VAR PATH1 PATHLIST
|
||||
VAR=$1
|
||||
PATHLIST=$2
|
||||
for PATH1 in ${PATHLIST//:/" "}; do
|
||||
_AppendPath "$VAR" "$PATH1"
|
||||
done
|
||||
}
|
||||
|
||||
# For convenience:
|
||||
if [ "$1" = restore ]; then
|
||||
RestoreModuleEnv
|
||||
|
||||
Reference in New Issue
Block a user