commit: 24431d643340999918ef9d2ba8ebf82d4fa6d313
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 3 18:41:31 2026 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Wed Mar 4 16:52:37 2026 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=24431d64
bin/isolated-functions.sh: die: maintain the previous exit status
This isn't required by PMS, but it could provide more useful information
to the caller than always returning 1.
This also fixes the intended behavior in __helpers_die: in bash, a
logical or (||) does not evaluate to the first non-zero argument.
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
bin/isolated-functions.sh | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index 8fe32a860b..f9733a15c7 100644
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -92,11 +92,13 @@ __helpers_die() {
die "$@"
else
echo -e "$@" >&2
- return "$(( retval || 1 ))"
+ return "$(( retval ? retval : 1 ))"
fi
}
die() {
+ local retval=$?
+
# restore PATH since die calls basename & sed
# TODO: make it pure bash
[[ -n ${_PORTAGE_ORIG_PATH} ]] && PATH=${_PORTAGE_ORIG_PATH}
@@ -108,7 +110,7 @@ die() {
shift
if [[ ${PORTAGE_NONFATAL} == 1 ]]; then
[[ $# -gt 0 ]] && echo -e "$@" >&2
- return 1
+ return "$(( retval ? retval : 1 ))"
fi
fi
@@ -221,7 +223,7 @@ die() {
if [[ -n ${EBUILD_MASTER_PID} && ${BASHPID} != "${EBUILD_MASTER_PID}"
]] ; then
kill -s SIGTERM "${EBUILD_MASTER_PID}"
fi
- exit 1
+ exit "$(( retval ? retval : 1 ))"
}
__quiet_mode() {