diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/util.bash | 8 | ||||
-rw-r--r-- | lib/util/config.bash | 7 |
2 files changed, 10 insertions, 5 deletions
diff --git a/lib/util.bash b/lib/util.bash index 7bc8a6d..ad84247 100644 --- a/lib/util.bash +++ b/lib/util.bash @@ -162,18 +162,18 @@ file_template() do debug "bashtard/template" "Adding $kv to sedfile at $sedfile" - key="$(awk -F= '{ print $1 }' <<< "$kv")" + key="$(cut -d'=' -f -1 <<< "$kv")" if [[ -z "$key" ]] then - crit "bashtard/template" "Empty key in '$kv' while rendering $file?" + crit "bashtard/template" "Empty key in '$kv' while rendering $file" fi - value="$(awk -F= '{ print $NF }' <<< "$kv")" + value="$(cut -d'=' -f 2- <<< "$kv")" if [[ -z "$value" ]] then - crit "bashtard/template" "Empty key in '$kv' while rendering $file?" + crit "bashtard/template" "Empty key in '$kv' while rendering $file" fi # shellcheck disable=SC2016 diff --git a/lib/util/config.bash b/lib/util/config.bash index 4727706..76b6567 100644 --- a/lib/util/config.bash +++ b/lib/util/config.bash @@ -51,7 +51,12 @@ config_for() { [[ ! -f $file ]] && continue - value="$(awk -F= '$1 == "'"$key"'" { print $NF }' "$file")" + # Use awk to find the right line, then use cut to get the + # actual value. Cutting it out with awk _is_ possible, but + # comes with whitespace issues or having to deal with values + # containing the seperator (=), so using cut is much simpler + # and easier to understand. + value="$(awk -F= '$1 == "'"$key"'" { print $0 }' "$file" | cut -d'=' -f 2-)" if [[ -n $value ]] then |