Merge branch 'force_set_var-v2' of ssh://github.com/TinCanTech/easy-rsa into TinCanTech-force_set_var-v2
Signed-off-by: Richard T Bonhomme <tincantech@protonmail.com>
This commit is contained in:
commit
2df4ef2016
@ -5927,17 +5927,33 @@ Temporary directory does not exist:
|
|||||||
# Sets '$1' as the value contained in '$2'
|
# Sets '$1' as the value contained in '$2'
|
||||||
# and exports (may be blank)
|
# and exports (may be blank)
|
||||||
set_var() {
|
set_var() {
|
||||||
[ "$#" = 0 ] && return
|
[ -z "$*" ] && return
|
||||||
[ "$#" -lt 3 ] || die "set_var - excess input"
|
[ -z "$3" ] || \
|
||||||
[ "$1" = "${1% *}" ] || die "set_var - input error"
|
user_error "set_var - excess input '$*'"
|
||||||
eval "export \"$1\"=\"\${$1-$2}\""
|
case "$1" in
|
||||||
|
*=*) user_error "set_var - var '$1'"
|
||||||
|
esac
|
||||||
|
eval "export \"$1\"=\"\${$1-$2}\"" && return
|
||||||
|
die "set_var - eval '$*'"
|
||||||
} #=> set_var()
|
} #=> set_var()
|
||||||
|
|
||||||
# sanatize and set var
|
# sanatize and set var
|
||||||
|
# nix.sh/win.sh/busybox.sh never return error from unset
|
||||||
|
# when an invalid variable name 'a=b' is used with a value
|
||||||
|
# to set, eg. 'c'; This causes EasyRSA to execute:
|
||||||
|
# eval "export a=b=c". 'set_var EASYRSA_PKI=pki' results in
|
||||||
|
# $EASYRSA_PKI being set to 'pki=pki-', without error!
|
||||||
|
# Guard against this possible user error with 'case'.
|
||||||
force_set_var() {
|
force_set_var() {
|
||||||
[ "$#" = 2 ] || die "force_set_var - input"
|
[ -z "$3" ] || \
|
||||||
unset -v "$1" || die "force_set_var - unset"
|
user_error "force_set_var - excess input '$*'"
|
||||||
set_var "$1" "$2" || die "force_set_var - set_var"
|
case "$1" in
|
||||||
|
*=*) user_error "force_set_var - var '$1'"
|
||||||
|
esac
|
||||||
|
# Guard unset with '|| die', just in case
|
||||||
|
unset -v "$1" || die "force_set_var - unset '$1'"
|
||||||
|
set_var "$1" "$2" && return
|
||||||
|
die "force_set_var - set_var '$*'"
|
||||||
} # => force_set_var()
|
} # => force_set_var()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user