diff options
-rwxr-xr-x | bin/isolated-functions.sh | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh index a05cffed0..2bd704d72 100755 --- a/bin/isolated-functions.sh +++ b/bin/isolated-functions.sh @@ -53,7 +53,23 @@ dump_trace() { done } +nonfatal() { + if has "${EAPI:-0}" 0 1 2; then + die "$FUNCNAME() not supported in this EAPI" + fi + if [[ $# -lt 1 ]]; then + die "$FUNCNAME(): Missing argument" + fi + + PORTAGE_NONFATAL=1 "$@" +} + die() { + if [[ $PORTAGE_NONFATAL -eq 1 ]]; then + echo -e " $WARN*$NORMAL ${FUNCNAME[1]}: WARNING: $@" >&2 + return 1 + fi + set +e if [ -n "${QA_INTERCEPTORS}" ] ; then # die was called from inside inherit. We need to clean up |