mirror of
https://github.com/Pmodules/Pmodules.git
synced 2026-06-27 10:03:08 +02:00
modulecmd: re-add directory to MODULEPATH removed by Lmod
This commit is contained in:
@@ -54,6 +54,8 @@ declare -- DefaultReleaseStages='stable'
|
|||||||
declare -A OverlayExcludes=()
|
declare -A OverlayExcludes=()
|
||||||
declare -a UsedOverlays=()
|
declare -a UsedOverlays=()
|
||||||
declare -- PmFiles=''
|
declare -- PmFiles=''
|
||||||
|
declare -- ModulePathAppend=''
|
||||||
|
declare -- ModulePathPrepend=''
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
declare -- Verbosity_lvl='verbose'
|
declare -- Verbosity_lvl='verbose'
|
||||||
@@ -159,6 +161,8 @@ save_env() {
|
|||||||
vars+=( OverlayExcludes )
|
vars+=( OverlayExcludes )
|
||||||
vars+=( OverlayInfo Dir2OverlayMap)
|
vars+=( OverlayInfo Dir2OverlayMap)
|
||||||
vars+=( PmFiles )
|
vars+=( PmFiles )
|
||||||
|
vars+=( 'ModulePathAppend' )
|
||||||
|
vars+=( 'ModulePathPrepend' )
|
||||||
local s=''
|
local s=''
|
||||||
s=$(typeset -p "${vars[@]}")
|
s=$(typeset -p "${vars[@]}")
|
||||||
declare -gx PMODULES_ENV=''
|
declare -gx PMODULES_ENV=''
|
||||||
@@ -1032,6 +1036,18 @@ subcommand_unload() {
|
|||||||
declare -x LOADEDMODULES=''
|
declare -x LOADEDMODULES=''
|
||||||
fi
|
fi
|
||||||
set_lmfiles
|
set_lmfiles
|
||||||
|
|
||||||
|
# maybe Lmod removed some directories from MODULEPATH?
|
||||||
|
local -- dir=''
|
||||||
|
local -a dirs=()
|
||||||
|
IFS=':' read -r -a dirs <<<"${ModulePathAppend}"
|
||||||
|
for dir in "${dirs[@]}"; do
|
||||||
|
std::append_path MODULEPATH "${dir}"
|
||||||
|
done
|
||||||
|
IFS=':' read -r -a dirs <<<"${ModulePathPrepend}"
|
||||||
|
for dir in "${dirs[@]}"; do
|
||||||
|
std::prepend_path MODULEPATH "${dir}"
|
||||||
|
done
|
||||||
export_env 'LOADEDMODULES' '_LMFILES_'
|
export_env 'LOADEDMODULES' '_LMFILES_'
|
||||||
EnvMustBeSaved='yes'
|
EnvMustBeSaved='yes'
|
||||||
} # subcommand_unload
|
} # subcommand_unload
|
||||||
@@ -1813,7 +1829,13 @@ subcommand_use() {
|
|||||||
if [[ -d ${arg} ]]; then
|
if [[ -d ${arg} ]]; then
|
||||||
local dir=''
|
local dir=''
|
||||||
dir=$(std::get_abspath "${arg}")
|
dir=$(std::get_abspath "${arg}")
|
||||||
${add2path_func} MODULEPATH "${dir}" || rc=$?
|
if [[ "${opt_append}" == 'yes' ]]; then
|
||||||
|
std::append_path MODULEPATH "${dir}" || rc=$?
|
||||||
|
std::append_path ModulePathAppend "${dir}" || rc=$?
|
||||||
|
else
|
||||||
|
std::prepend_path MODULEPATH "${dir}" || rc=$?
|
||||||
|
std::prepend_path ModulePathPrepend "${dir}" || rc=$?
|
||||||
|
fi
|
||||||
return ${rc}
|
return ${rc}
|
||||||
fi
|
fi
|
||||||
die_invalid_value "use flag, group, overlay or directory" \
|
die_invalid_value "use flag, group, overlay or directory" \
|
||||||
@@ -1822,16 +1844,17 @@ subcommand_use() {
|
|||||||
|
|
||||||
#......................................................................
|
#......................................................................
|
||||||
local -a args=()
|
local -a args=()
|
||||||
|
opt_append='yes'
|
||||||
while (( $# > 0)); do
|
while (( $# > 0)); do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-\? | -H | --help )
|
-\? | -H | --help )
|
||||||
print_help "${SubCommand}"
|
print_help "${SubCommand}"
|
||||||
;;
|
;;
|
||||||
-a | --append )
|
-a | --append )
|
||||||
add2path_func='std::append_path'
|
opt_append='yes'
|
||||||
;;
|
;;
|
||||||
-p | --prepend )
|
-p | --prepend )
|
||||||
add2path_func='std::prepend_path'
|
opt_append='no'
|
||||||
;;
|
;;
|
||||||
-- )
|
-- )
|
||||||
shift 1
|
shift 1
|
||||||
@@ -1945,6 +1968,8 @@ subcommand_unuse() {
|
|||||||
local -- dir=''
|
local -- dir=''
|
||||||
for dir in "${modulepath[@]}"; do
|
for dir in "${modulepath[@]}"; do
|
||||||
std::remove_path MODULEPATH "${dir}"
|
std::remove_path MODULEPATH "${dir}"
|
||||||
|
std::remove_path ModulePathAppend "${dir}"
|
||||||
|
std::remove_path ModulePathPrepend "${dir}"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -1999,6 +2024,8 @@ subcommand_unuse() {
|
|||||||
local dir=''
|
local dir=''
|
||||||
dir=$(std::get_abspath "${arg}")
|
dir=$(std::get_abspath "${arg}")
|
||||||
std::remove_path MODULEPATH "${dir}"
|
std::remove_path MODULEPATH "${dir}"
|
||||||
|
std::remove_path ModulePathAppend "${dir}"
|
||||||
|
std::remove_path ModulePathPrepend "${dir}"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
if [[ -v GroupDepths[${arg}] ]]; then
|
if [[ -v GroupDepths[${arg}] ]]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user