From: Russ Cox Date: Mon, 22 Jun 2009 22:43:50 +0000 (-0700) Subject: set -e does not apply to ( ) blocks, X-Git-Tag: weekly.2009-11-06~1353 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=bede992dd3f949b766ea0a66e178887658bdde09;p=gostls13.git set -e does not apply to ( ) blocks, so implement the check manually. sigh. R=r DELTA=17 (6 added, 0 deleted, 11 changed) OCL=30606 CL=30612 --- diff --git a/src/make.bash b/src/make.bash index 6b103c6571..00cc6b4fd3 100755 --- a/src/make.bash +++ b/src/make.bash @@ -19,17 +19,23 @@ cp quietgcc.bash $HOME/bin/quietgcc chmod +x $HOME/bin/quietgcc for i in lib9 libbio libmach_amd64 libregexp cmd pkg cmd/gobuild cmd/godoc cmd/gofmt -do ( - echo; echo; echo %%%% making $i %%%%; echo - cd $i - case $i in - cmd) - bash make.bash - ;; - *) - make install - esac -) done +do + # The ( ) here are to preserve the current directory + # for the next round despite the cd $i below. + # set -e does not apply to ( ) so we must explicitly + # test the exit status. + ( + echo; echo; echo %%%% making $i %%%%; echo + cd $i + case $i in + cmd) + bash make.bash + ;; + *) + make install + esac + ) || exit 1 +done case "`uname`" in Darwin)