diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/conf.sh.in | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/lib/conf.sh.in b/src/lib/conf.sh.in index 1e4acd9..18760e1 100644 --- a/src/lib/conf.sh.in +++ b/src/lib/conf.sh.in @@ -112,21 +112,21 @@ load_files() { local file # Save the existing versions at _VARNAME - for var in $(list_envvars "$slug"); do + while read -r var; do [[ -n ${!var:-} ]] && eval "_$var=\${$var}" - done + done < <(list_envvars "$slug") # Load the files - for file in $(list_files "$slug"); do + while read -r file; do if [[ -r $file ]]; then . "$file" || return 1 fi - done + done < <(list_files "$slug") # Restore the _SAVED versions - for var in $(list_envvars "$slug"); do + while read -r var; do eval "$var=\${_$var:-\${$var:-}}" - done + done < <(list_envvars "$slug") } # Usage: check_vars $slug VAR1 VAR2... @@ -174,13 +174,13 @@ set_var() { local key=$2 local val=$3 local file - for file in $(list_files "$slug"|tac); do + while read -r file; do if [[ -w $file ]]; then sed -i "/^\s*$key=/d" "$file" printf '%s=%q\n' "$key" "$val" >> "$file" return 0 fi - done + done < <(list_files "$slug"|tac) return 1 } |