[libvirt] [PATCH] autobuild.sh: avoid bashism

Eric Blake eblake at redhat.com
Fri Jun 4 03:09:14 UTC 2010


* autobuild.sh: Replace 'set -o pipefail' with POSIX alternative.
Reported by Matthias Bolte.
---

On IRC, Matthias pointed out that his testing of my recent
autobuild.sh patch triggered a dash failure.  Unfortunately,
the checkbashisms script is not smart enough to realize that
'set -o pipefail' is a bashism, yet it also does not provide
a bug reporting address in checkbashisms --help :(

 autobuild.sh |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/autobuild.sh b/autobuild.sh
index 4de5af8..66ba132 100755
--- a/autobuild.sh
+++ b/autobuild.sh
@@ -35,9 +35,15 @@ esac
 make
 make install

-set -o pipefail
-make check 2>&1 | tee "$RESULTS"
-make syntax-check 2>&1 | tee -a "$RESULTS"
+# set -o pipefail is a bashism; this use of exec is the POSIX alternative
+exec 3>&1
+st=$(
+  exec 4>&1 >&3
+  { make check syntax-check 2>&1; echo $? >&4; } \
+  | tee "$RESULTS"
+)
+exec 3>&-
+test $st = 0
 test -x /usr/bin/lcov && make cov

 rm -f *.tar.gz
-- 
1.7.0.1




More information about the libvir-list mailing list