diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2019-10-19 10:33:10 -0700 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2020-02-02 16:35:04 +0000 |
commit | 70df464217c2b96ea481cb3b28210b53a2d7e040 (patch) | |
tree | cf7a7de7ebd6883fa1b3d9d372bc7e609d092661 | |
parent | 134addbf3309871ef36016dd136c362b9cade482 (diff) |
git-debpush: avoid a pipefail problem in get_file_from_ref
`grep -q` exits as soon as it finds a matching line, potentially
sending a SIGPIPE to git-ls-tree. We have pipefail turned on, so that
can make the whole pipeline exit nonzero, which is wrong when grep did
in fact find a match.
This solution is more readable than disabling pipefail just for this
line (as is done elsewhere in git-debpush).
Closes: #940588
Reported-by: Andrej Shadura <andrewsh@debian.org>
Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
-rwxr-xr-x | git-debpush | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/git-debpush b/git-debpush index c3b067d..2790560 100755 --- a/git-debpush +++ b/git-debpush @@ -59,8 +59,10 @@ badusage () { get_file_from_ref () { local path=$1 + # redirect to /dev/null instead of using `grep -Eq` to avoid grep + # SIGPIPEing git-ls-tree if git ls-tree --name-only -r "$branch" \ - | grep -Eq "^$path$"; then + | grep -E "^$path$" >/dev/null; then git cat-file blob $branch:$path fi } |