Hi, I would like to enable output without color. I also have on the wish list to print passfile_dir with a leading slash.
best regards -- Knut Olav Bøhmer
From e518473a6572b4d848ddbf9cafbc9ad0bca9459a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20B=C3=B8hmer?= <[email protected]> Date: Thu, 6 Oct 2022 16:30:15 +0200 Subject: [PATCH] Make cmd_grep understand --color --- src/password-store.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/password-store.sh b/src/password-store.sh index 22e818f..013ea51 100755 --- a/src/password-store.sh +++ b/src/password-store.sh @@ -419,16 +419,22 @@ cmd_find() { cmd_grep() { [[ $# -lt 1 ]] && die "Usage: $PROGRAM $COMMAND [GREPOPTIONS] search-string" - local passfile grepresults + [[ "$@" =~ --color=(never)[[:space:]] ]] + local passfile grepresults color=${BASH_REMATCH[1]:-always} while read -r -d "" passfile; do - grepresults="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | grep --color=always "$@")" + grepresults="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | grep --color=${color} "$@")" [[ $? -ne 0 ]] && continue passfile="${passfile%.gpg}" passfile="${passfile#$PREFIX/}" local passfile_dir="${passfile%/*}/" [[ $passfile_dir == "${passfile}/" ]] && passfile_dir="" passfile="${passfile##*/}" - printf "\e[94m%s\e[1m%s\e[0m:\n" "$passfile_dir" "$passfile" + if [[ $color == never ]] + then + printf "%s%s:\n" "$passfile_dir" "$passfile" + else + printf "\e[94m%s\e[1m%s\e[0m:\n" "$passfile_dir" "$passfile" + fi echo "$grepresults" done < <(find -L "$PREFIX" -path '*/.git' -prune -o -path '*/.extensions' -prune -o -iname '*.gpg' -print0) } -- 2.37.3
