mirror of
https://github.com/Pmodules/Pmodules.git
synced 2026-06-29 10:49:41 +02:00
Merge branch 'master' into 32-overlay-implementation
This commit is contained in:
+48
-48
@@ -105,8 +105,8 @@ export_env() {
|
||||
declare g_env_must_be_saved='no'
|
||||
|
||||
save_env() {
|
||||
[[ "$1" == 'no' ]] && return 0
|
||||
local vars=( GroupDepths UsedReleases UseFlags UsedGroups )
|
||||
[[ $1 == 'no' ]] && return 0
|
||||
local vars=( Version GroupDepths UsedReleases UseFlags UsedGroups )
|
||||
vars+=( PMODULES_DEFAULT_GROUPS PMODULES_DEFINED_RELEASES )
|
||||
vars+=( PMODULES_DEFAULT_RELEASES )
|
||||
vars+=( OverlayList )
|
||||
@@ -1791,6 +1791,47 @@ reset_modulepath() {
|
||||
done
|
||||
}
|
||||
|
||||
reset_used_groups() {
|
||||
UsedGroups=''
|
||||
local group
|
||||
for group in ${PMODULES_DEFAULT_GROUPS}; do
|
||||
std::prepend_path UsedGroups "${group}"
|
||||
done
|
||||
g_env_must_be_saved='yes'
|
||||
}
|
||||
|
||||
reset_used_releases() {
|
||||
declare -g UsedReleases=''
|
||||
for r in ${PMODULES_DEFAULT_RELEASES//:/ }; do
|
||||
std::append_path UsedReleases "${r}"
|
||||
done
|
||||
g_env_must_be_saved='yes'
|
||||
}
|
||||
|
||||
init_path() {
|
||||
std::replace_path PATH "${PMODULES_HOME%/*}/.*"
|
||||
std::prepend_path PATH "${PMODULES_HOME}/bin"
|
||||
}
|
||||
|
||||
init_manpath() {
|
||||
std::replace_path MANPATH "${PMODULES_HOME%/*}/.*"
|
||||
|
||||
if [[ -r /etc/man.config ]]; then
|
||||
declare _manconf='/etc/man.config'
|
||||
elif [[ -r /etc/man.conf ]]; then
|
||||
declare _manconf='/etc/man.conf'
|
||||
fi
|
||||
if [[ -n ${_manconf} ]]; then
|
||||
while read name value rest; do
|
||||
std::append_path MANPATH "${value}"
|
||||
done < <(grep "^MANPATH\s" "${_manconf}")
|
||||
unset _manconf
|
||||
else
|
||||
std::append_path MANPATH "${PMODULES_HOME}/share/man"
|
||||
std::append_path MANPATH "/usr/share/man"
|
||||
fi
|
||||
}
|
||||
|
||||
pmodules_init() {
|
||||
declare -gx LOADEDMODULES=''
|
||||
declare -gx _LMFILES_=''
|
||||
@@ -1800,49 +1841,10 @@ pmodules_init() {
|
||||
declare -g UsedGroups=''
|
||||
declare -gx MODULEPATH=''
|
||||
declare -Ag GroupDepths='()'
|
||||
unset UseFlags
|
||||
declare -Ag UseFlags=()
|
||||
|
||||
reset_used_groups() {
|
||||
UsedGroups=''
|
||||
local group
|
||||
for group in ${PMODULES_DEFAULT_GROUPS}; do
|
||||
std::prepend_path UsedGroups "${group}"
|
||||
done
|
||||
g_env_must_be_saved='yes'
|
||||
}
|
||||
|
||||
reset_used_releases() {
|
||||
declare -g UsedReleases=''
|
||||
for r in ${PMODULES_DEFAULT_RELEASES//:/ }; do
|
||||
std::append_path UsedReleases "${r}"
|
||||
done
|
||||
g_env_must_be_saved='yes'
|
||||
}
|
||||
|
||||
init_path() {
|
||||
std::replace_path PATH "${PMODULES_HOME%/*}/.*"
|
||||
std::prepend_path PATH "${PMODULES_HOME}/bin"
|
||||
}
|
||||
|
||||
init_manpath() {
|
||||
std::replace_path MANPATH "${PMODULES_HOME%/*}/.*"
|
||||
|
||||
if [[ -r /etc/man.config ]]; then
|
||||
declare _manconf='/etc/man.config'
|
||||
elif [[ -r /etc/man.conf ]]; then
|
||||
declare _manconf='/etc/man.conf'
|
||||
fi
|
||||
if [[ -n ${_manconf} ]]; then
|
||||
while read name value rest; do
|
||||
std::append_path MANPATH "${value}"
|
||||
done < <(grep "^MANPATH\s" "${_manconf}")
|
||||
unset _manconf
|
||||
else
|
||||
std::append_path MANPATH "${PMODULES_HOME}/share/man"
|
||||
std::append_path MANPATH "/usr/share/man"
|
||||
fi
|
||||
}
|
||||
|
||||
declare -g Version="${PMODULES_VERSION}"
|
||||
|
||||
reset_used_groups
|
||||
reset_modulepath
|
||||
reset_used_releases
|
||||
@@ -2722,10 +2724,8 @@ _init_overlay_vars() {
|
||||
|
||||
if [[ -n ${PMODULES_ENV} ]]; then
|
||||
eval "$("${base64}" -d <<< "${PMODULES_ENV}" 2>/dev/null)"
|
||||
# if we load a Pmodules version with overlay support,
|
||||
# OverlayList might not be set. Since libmodules.tcl
|
||||
# reads PMODULES_ENV we have to save the environment.
|
||||
if [[ -z "${OverlayList}" ]]; then
|
||||
if [[ -z ${Version} ]] || [[ ${Version} != ${PMODULES_VERSION} ]]; then
|
||||
pmodules_init
|
||||
_init_overlay_vars
|
||||
fi
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user