[PATCH] --fullpath option for find subcommand

Tobias Girstmair t-passwd at girst.at
Tue Apr 14 19:24:24 CEST 2020


---
I know that this has been discussed in the past; apologies if it's 
inappropriate to bring it up again. I believe this patch is an 
improvement over previous iterations, as it does not duplicate the call 
to tree (or introduce a call to find).
I'm not sure if $PREFIX should be escaped (how?) in the regular 
expression -- open for ideas.

  src/password-store.sh | 13 +++++++++++--
  1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/password-store.sh b/src/password-store.sh
index 77f3eda..ce8e14d 100755
--- a/src/password-store.sh
+++ b/src/password-store.sh
@@ -409,10 +409,19 @@ cmd_show() {
  }
  
  cmd_find() {
-	[[ $# -eq 0 ]] && die "Usage: $PROGRAM $COMMAND pass-names..."
+	local opts extra_args=""
+	opts="$($GETOPT -o f -l fullpath -n "$PROGRAM" -- "$@")"
+	local err=$?
+	eval set -- "$opts"
+	while true; do case $1 in
+		-f|--fullpath) extra_args="$extra_args -Ffi"; shift ;;
+		--) shift; break ;;
+	esac done
+
+	[[ $err -ne 0 || $# -eq 0 ]] && die "Usage: $PROGRAM $COMMAND [--fullpath,-f] pass-names..."
  	IFS="," eval 'echo "Search Terms: $*"'
  	local terms="*$(printf '%s*|*' "$@")"
-	tree -C -l --noreport -P "${terms%|*}" --prune --matchdirs --ignore-case "$PREFIX" | tail -n +2 | sed -E 's/\.gpg(\x1B\[[0-9]+m)?( ->|$)/\1\2/g'
+	tree -C -l --noreport -P "${terms%|*}" --prune --matchdirs --ignore-case $extra_args "$PREFIX" | tail -n +2 | sed -E -e 's/\.gpg(\x1B\[[0-9]+m)?( ->|$)/\1\2/g' -e "s@^$PREFIX/?@@" -e '/\/$/d'
  }
  
  cmd_grep() {
-- 
2.21.1



More information about the Password-Store mailing list