modulecmd: reinitialize Pmodules if Pmodules version changed

This commit is contained in:
2021-05-06 19:04:27 +02:00
parent 1731df2097
commit 0ea9e54cc4
+7 -2
View File
@@ -102,7 +102,7 @@ declare g_env_must_be_saved='no'
save_env() {
[[ $1 == 'no' ]] && return 0
local vars=( GroupDepths UsedReleases UseFlags UsedGroups )
local vars=( Version GroupDepths UsedReleases UseFlags UsedGroups )
vars+=( PMODULES_DEFAULT_GROUPS PMODULES_DEFINED_RELEASES )
vars+=( PMODULES_DEFAULT_RELEASES )
@@ -1345,6 +1345,7 @@ reset_modulepath() {
local dir="${root}/${group}/${PMODULES_MODULEFILES_DIR}"
[[ -d "${dir}" ]] && std::prepend_path MODULEPATH "${dir}"
done
g_env_must_be_saved='yes'
}
reset_used_groups() {
@@ -1364,7 +1365,6 @@ reset_used_releases() {
g_env_must_be_saved='yes'
}
init_manpath() {
std::replace_path MANPATH "${PMODULES_HOME%/*}/.*"
@@ -1391,7 +1391,9 @@ pmodules_init() {
declare -gx MODULEPATH=''
declare -Ag GroupDepths='()'
unset UseFlags
declare -Ag UseFlags=()
declare -g Version="${PMODULES_VERSION}"
reset_modulepath
reset_used_groups
reset_used_releases
@@ -2259,6 +2261,9 @@ fi
if [[ -n ${PMODULES_ENV} ]]; then
eval "$("${base64}" -d <<< "${PMODULES_ENV}" 2>/dev/null)"
if [[ -z ${Version} ]] || [[ ${Version} != ${PMODULES_VERSION} ]]; then
pmodules_init
fi
else
pmodules_init
fi