[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

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



2010/6/4 Eric Blake <eblake redhat com>:
> * 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
>

ACK, tested and verified that it fixes the problem.

Matthias


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]