diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2014-06-11 20:43:28 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2014-09-09 19:18:23 +0300 |
commit | 64228d0d5cd75af31e5c330cc3a792016413fabf (patch) | |
tree | 75d641e588d4b554f84d16af63707183c7fce196 | |
parent | 98d3368ef4bff0face78d6932f2156730c8cb658 (diff) | |
download | xz-64228d0d5cd75af31e5c330cc3a792016413fabf.tar.gz |
xzgrep: exit 0 when at least one file matches.
Mimic the original grep behavior and return exit_success when
at least one xz compressed file matches given pattern.
Original bugreport:
https://bugzilla.redhat.com/show_bug.cgi?id=1108085
Thanks to Pavel Raiskup for the patch.
-rw-r--r-- | src/scripts/xzgrep.in | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/scripts/xzgrep.in b/src/scripts/xzgrep.in index 2bfce19..b927a55 100644 --- a/src/scripts/xzgrep.in +++ b/src/scripts/xzgrep.in @@ -147,7 +147,9 @@ if test $# -eq 0; then fi exec 3>&1 -res=0 + +# res=1 means that no file matched yet +res=1 for i; do case $i in @@ -194,8 +196,17 @@ for i; do fi >&3 5>&- ) r=$? + + # fail occured previously, nothing worse can happen + test $res -gt 1 && continue + test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \ || test "$(kill -l "$xz_status" 2> /dev/null)" = "PIPE" || r=2 - test $res -lt $r && res=$r + + # still no match + test $r -eq 1 && continue + + # 0 == match, >=2 == fail + res=$r done exit $res |