tests/utils/env.sh.in: make it portable for Bash and Zsh
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 9 Feb 2024 03:35:49 +0000 (22:35 -0500)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 9 Feb 2024 18:59:45 +0000 (13:59 -0500)
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

tests/utils/env.sh.in

index 12069fef8cfafdbecf01304d7b80e885c68803d6..4cd75ce14f69de861a576f02599ee63e724808b5 100644 (file)
@@ -3,12 +3,13 @@
 # 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
 
This page took 0.025244 seconds and 4 git commands to generate.