From 013af13633e6d00b06d84956a2d5785a732478b1 Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Fri, 24 May 2019 09:27:25 +0200 Subject: [PATCH] modulecmd.bash.in: save_env() rewritten - "typeset -p" is able to handle multiple variables! --- Pmodules/modulecmd.bash.in | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Pmodules/modulecmd.bash.in b/Pmodules/modulecmd.bash.in index 10b32f4..a9e6b39 100755 --- a/Pmodules/modulecmd.bash.in +++ b/Pmodules/modulecmd.bash.in @@ -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