diff options
author | Nikolay Amiantov <ab@fmap.me> | 2018-02-21 11:56:06 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2018-02-21 23:54:31 +0300 |
commit | 9a9c2e65791d8f8a07b2b3b1555f633d47520197 (patch) | |
tree | 71b8fbdac137e41dad4bce95dbe3ca4355df7b9a /pkgs/build-support | |
parent | 1d15dadbec4f3d0a1f98e877e77518afe9245148 (diff) | |
download | nixlib-9a9c2e65791d8f8a07b2b3b1555f633d47520197.tar nixlib-9a9c2e65791d8f8a07b2b3b1555f633d47520197.tar.gz nixlib-9a9c2e65791d8f8a07b2b3b1555f633d47520197.tar.bz2 nixlib-9a9c2e65791d8f8a07b2b3b1555f633d47520197.tar.lz nixlib-9a9c2e65791d8f8a07b2b3b1555f633d47520197.tar.xz nixlib-9a9c2e65791d8f8a07b2b3b1555f633d47520197.tar.zst nixlib-9a9c2e65791d8f8a07b2b3b1555f633d47520197.zip |
cc-wrapper: fix bool handling for empty and zero values
Before the code would fail silently for zero values and with some output for empties. We now currently handle both via defaulting value to zero and making `let` return success error code when there's no syntax error.
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/cc-wrapper/utils.sh | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/pkgs/build-support/cc-wrapper/utils.sh b/pkgs/build-support/cc-wrapper/utils.sh index 4b2b13809181..9215fe2dc397 100644 --- a/pkgs/build-support/cc-wrapper/utils.sh +++ b/pkgs/build-support/cc-wrapper/utils.sh @@ -25,7 +25,11 @@ mangleVarBool() { for infix in "${role_infixes[@]}"; do local inputVar="${var/+/${infix}}" if [ -v "$inputVar" ]; then - let "${outputVar} |= ${!inputVar}" + # "1" in the end makes `let` return success error code when + # expression itself evaluates to zero. + # We don't use `|| true` because that would silence actual + # syntax errors from bad variable values. + let "${outputVar} |= ${!inputVar:-0}" "1" fi done } |