Re: [PATCH 2/2] filter-branch: fail gracefully when a filter fails
- From
Josh Triplett <josh@freedesktop.org>
- Date
- Jul 6, 2007, 03:22 UTC
- Message-ID
- <468DB570.1090900@freedesktop.org>
- In-Reply-To
- <20070705135824.GB5493@sigill.intra.peff.net>
Jeff King wrote:
Show 13 quoted lines
> On Wed, Jul 04, 2007 at 03:36:01PM +0100, Johannes Schindelin wrote: > >> It is slightly ugly that the output of msg-filter is written >> to a temporary file. But I do not know a better method to >> catch a failing msg-filter. Help? > > If you mean, in general, to catch the exit code of the first part of a > pipe, you have to do something like this: > > status=`((cmd1; echo $? >&3) | cmd2) 3>&1` > > which is pretty ugly in itself, and if you want the stdout of cmd2, then > you have to add even more redirection. I'm not sure it's worth it.
bash has "set -o pipefail", but that would require bash. However, you could try setting pipefail, and ignoring any failure to set it; that would give the more friendly behavior with bash, while still allowing any /bin/sh in general.
- Josh Triplett