modulecmd.bash.in: save_env() rewritten

- "typeset -p" is able to handle multiple variables!
This commit is contained in:
2019-05-24 09:27:25 +02:00
parent d4bc88c1dd
commit 013af13633
+7 -11
View File
@@ -78,20 +78,16 @@ declare g_env_must_be_saved='no'
save_env() {
[[ ${g_env_must_be_saved} == 'no' ]] && return 0
local -r shell="$1"
shift
local s=''
local tmp
while (( $# > 0 )); do
tmp="$( typeset -p $1 2> /dev/null)"
[[ -n "${tmp}" ]] && s+="${tmp};"
shift
done
local vars=( GroupDepths UsedReleases UseFlags UsedGroups )
vars+=( PMODULES_DEFAULT_GROUPS PMODULES_DEFINED_RELEASES )
vars+=( PMODULES_DEFAULT_RELEASES )
local s=$(typeset -p ${vars[@]})
declare -g PMODULES_ENV=$( "${base64}" --wrap=0 <<< "$s" )
export_env ${shell} PMODULES_ENV
export_env ${g_shell} PMODULES_ENV
}
trap 'save_env ${g_shell} GroupDepths UsedReleases UseFlags UsedGroups PMODULES_DEFAULT_GROUPS PMODULES_DEFINED_RELEASES PMODULES_DEFAULT_RELEASES' EXIT
trap 'save_env ' EXIT
#
# get release of module