summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2022-02-15 22:25:35 -0500
committerMike Frysinger <vapier@gentoo.org>2022-02-15 22:25:35 -0500
commit6097de0a54d70f7724c333a05e85299c0d2f3876 (patch)
tree7b1fe0b3197c1a4e86774fedb1d45d4b9c07def3
parent720a1153134b833de9298927a432b4ea266216fb (diff)
downloadautomake-6097de0a54d70f7724c333a05e85299c0d2f3876.tar.gz
python: fix exit status handling with uninstall
The st variable is set at the top of this shell script, and then here is a pipeline where it tries to update it in the subshell. But since setting variables in a subshell doesn't propagate back up, it doesn't actually work. Have the final subshell in the pipeline manage its own exit status and exit with that so that the final status of the pipeline is the right value. * lib/am/python.am: Fix final subshell exit status passing.
-rw-r--r--lib/am/python.am8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/am/python.am b/lib/am/python.am
index 8c302090a..e5e9dfe3b 100644
--- a/lib/am/python.am
+++ b/lib/am/python.am
@@ -118,9 +118,11 @@ uninstall-%DIR%PYTHON:
## into account. Avoid exceeding the command-line length limit.
dir='$(DESTDIR)$(%NDIR%dir)'; \
echo "$$py_files" | $(am__pep3147_tweak) | $(am__base_list) | \
- while read files; do \
- $(am__uninstall_files_from_dir) || st=$$?; \
- done || exit $$?; \
+ ( sst=0; \
+ while read files; do \
+ $(am__uninstall_files_from_dir) || sst=$$?; \
+ done; \
+ exit $$sst ) || st=$$?; \
exit $$st
endif %?INSTALL%