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.
This commit is contained in:
parent
98d3368ef4
commit
64228d0d5c
|
@ -147,7 +147,9 @@ if test $# -eq 0; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec 3>&1
|
exec 3>&1
|
||||||
res=0
|
|
||||||
|
# res=1 means that no file matched yet
|
||||||
|
res=1
|
||||||
|
|
||||||
for i; do
|
for i; do
|
||||||
case $i in
|
case $i in
|
||||||
|
@ -194,8 +196,17 @@ for i; do
|
||||||
fi >&3 5>&-
|
fi >&3 5>&-
|
||||||
)
|
)
|
||||||
r=$?
|
r=$?
|
||||||
|
|
||||||
|
# fail occured previously, nothing worse can happen
|
||||||
|
test $res -gt 1 && continue
|
||||||
|
|
||||||
test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \
|
test "$xz_status" -eq 0 || test "$xz_status" -eq 2 \
|
||||||
|| test "$(kill -l "$xz_status" 2> /dev/null)" = "PIPE" || r=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
|
done
|
||||||
exit $res
|
exit $res
|
||||||
|
|
Loading…
Reference in New Issue