The syntax
${!varname:-}
isn't valid in Zsh.
To make it possible to source the generated `env.sh` interactively, make
this (more) portable.
Now _set_var_def() also sets if the variable is set but empty, but I
don't think it's an issue here.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Change-Id: I07d49199c403ac24d569d383fd8bde2cf5b668e6
Reviewed-on: https://review.lttng.org/c/babeltrace/+/11769
# SPDX-FileCopyrightText: 2021-2022 EfficiOS, Inc.
# SPDX-License-Identifier: GPL-2.0-only
-# Sets the variable named `$1` to `$2` if it's not set, and exports it.
+# Sets the variable named `$1` to `$2` if it's not set (or empty), and
+# exports it.
_set_var_def() {
local -r varname=$1
local -r val=$2
- if [[ -z ${!varname:-} ]]; then
+ if [[ -z $(eval echo "\$$varname") ]]; then
eval "$varname='$val'"
fi