GNU bug report logs -
#60069
[PATCH 2/2] guix-install.sh: Directly exit in case of errors in chk_require.
Previous Next
Full log
View this message in rfc822 format
Hi,
Maxim Cournoyer <maxim.cournoyer <at> gmail.com> writes:
> Hi Tobias,
>
> Tobias Geerinckx-Rice <me <at> tobias.gr> writes:
>
>> Maxim Cournoyer 写道:
>>> - [ "${#warn}" -ne 0 ] &&
>>> - { _err "${ERR}Missing commands: ${warn[*]}.";
>>> - return 1; }
>>> - + [ "${#warn}" -ne 0 ] && die "Missing commands:
>>> ${warn[*]}."
>>> +
>>
>> I did not run this, but will it not itself trigger -e when the test
>> is false?
>
> This apparently falls in the special casing by Bash of what is
> considered a failure when using 'set -e'; here's a test:
>
> $ cat test.sh
> #!/usr/bin/env bash
>
> set -e
>
> [ false ] && echo "hey, we made it!"
>
> $ ./test.sh
> hey, we made it!
The above example was bogus and unnecessary; looking at it more closely,
the test would return true when the 'warn' array contains 1 or more
items (missing commands), which would cause the die command to be
invoked and the script to exit. The first test handling isn't modified,
so it'll chain though the second part the same as it does now.
I hope that's a better explanation.
--
Thanks,
Maxim
This bug report was last modified 2 years and 93 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.