summaryrefslogtreecommitdiff
path: root/db-functions
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2016-04-17 12:18:02 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2016-04-17 14:46:09 -0400
commit8700e09c4d2ff0a20d5fa3789a6309078bc1ccb6 (patch)
treee8a520abdf54b8e66cf0b37dfc4cf4a46c24781f /db-functions
parentdb673811e674dc246fefa432d205f67ef3c56dbc (diff)
Use `grep &>/dev/null` instead of `grep -q` when operating on piped stdin.
`grep -q` may exit as soon as it finds a match; this is a good optimization for when the input is a file. However, if the input is the output of another program, then that other program will receive SIGPIPE, and further writes will fail. When this happens, it might (bsdtar does) print a message about a "write error" to stderr. Which is going to confuse and alarm the user. I'll add that this is not purely hypothetical--it has happened to me while running the test suite.
Diffstat (limited to 'db-functions')
-rw-r--r--db-functions2
1 files changed, 1 insertions, 1 deletions
diff --git a/db-functions b/db-functions
index 5fe86b6..4eebf4a 100644
--- a/db-functions
+++ b/db-functions
@@ -364,7 +364,7 @@ check_pkgfile() {
in_array "${pkgarch}" "${ARCHES[@]}" 'any' || return 1
- if echo "${pkgfile##*/}" | grep -q "${pkgname}-${pkgver}-${pkgarch}"; then
+ if echo "${pkgfile##*/}" | grep "${pkgname}-${pkgver}-${pkgarch}" &>/dev/null; then
return 0
else
return 1