m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Buchmueller <norbi@nix.hu>2018-04-17 00:10:34 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-06-14 16:58:28 +0200
commit8732213db41e4d080651f85b0e6fcee1ebacf612 (patch)
tree37633f945de8924acd07101738e5681aab24bfca
parent8683403b77f59c56fcb1f05c61ab33b9fd61a30d (diff)
Add tests and documentation of passing options to grep(1)
-rw-r--r--man/pass.17
-rwxr-xr-xsrc/password-store.sh4
-rwxr-xr-xtests/t0400-grep.sh12
3 files changed, 18 insertions, 5 deletions
diff --git a/man/pass.1 b/man/pass.1
index e842178..01a3fbe 100644
--- a/man/pass.1
+++ b/man/pass.1
@@ -81,12 +81,13 @@ by using the
.BR tree (1)
program. This command is alternatively named \fBlist\fP.
.TP
-\fBgrep\fP \fIsearch-string\fP
+\fBgrep\fP [\fIGREPOPTIONS\fP] \fIsearch-string\fP
Searches inside each decrypted password file for \fIsearch-string\fP, and displays line
containing matched string along with filename. Uses
.BR grep (1)
-for matching. Make use of the \fIGREP_OPTIONS\fP environment variable to set particular
-options.
+for matching. \fIGREPOPTIONS\fP are passed to
+.BR grep (1)
+as-is. (Note: the \fIGREP_OPTIONS\fP environment variable functions as well.)
.TP
\fBfind\fP \fIpass-names\fP...
List names of passwords inside the tree that match \fIpass-names\fP by using the
diff --git a/src/password-store.sh b/src/password-store.sh
index b852d06..0c9b35d 100755
--- a/src/password-store.sh
+++ b/src/password-store.sh
@@ -266,7 +266,7 @@ cmd_usage() {
$PROGRAM [show] [--clip[=line-number],-c[line-number]] pass-name
Show existing password and optionally put it on the clipboard.
If put on the clipboard, it will be cleared in $CLIP_TIME seconds.
- $PROGRAM grep search-string
+ $PROGRAM grep [GREPOPTIONS] search-string
Search for password files containing search-string when decrypted.
$PROGRAM insert [--echo,-e | --multiline,-m] [--force,-f] pass-name
Insert new password. Optionally, echo the password back to the console
@@ -395,7 +395,7 @@ cmd_find() {
}
cmd_grep() {
- [[ $# -lt 1 ]] && die "Usage: $PROGRAM $COMMAND search-string"
+ [[ $# -lt 1 ]] && die "Usage: $PROGRAM $COMMAND [GREPOPTIONS] search-string"
local passfile grepresults
while read -r -d "" passfile; do
grepresults="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | grep --color=always "$@")"
diff --git a/tests/t0400-grep.sh b/tests/t0400-grep.sh
index 206377f..b244cf4 100755
--- a/tests/t0400-grep.sh
+++ b/tests/t0400-grep.sh
@@ -18,4 +18,16 @@ test_expect_success 'Make sure grep prints normal lines' '
grep -q "They are" <<<"$results"
'
+test_expect_success 'Test passing the "-i" option to grep' '
+ "$PASS" init $KEY1 &&
+ "$PASS" insert -e blah1 <<<"I wonder..." &&
+ "$PASS" insert -e blah2 <<<"Will it ignore" &&
+ "$PASS" insert -e blah3 <<<"case when searching?" &&
+ "$PASS" insert -e folder/blah4 <<<"Yes, it does. Wonderful!" &&
+ results="$("$PASS" grep -i wonder)" &&
+ [[ $(wc -l <<<"$results") -eq 4 ]] &&
+ grep -q blah1 <<<"$results" &&
+ grep -q blah4 <<<"$results"
+'
+
test_done