<div dir="ltr">- Hides shown text using terminal color codes by default<br><div><div>- Adds --no-color/-n option to remove coloring<br>- By default display only the first line regardless of whether clip is specified<br>- Full output can be toggled with --full/-f<br>---<br> src/completion/pass.bash-completion |  2 +-<br> src/completion/pass.fish-completion |  2 ++<br> src/completion/pass.zsh-completion  |  6 +++++-<br> src/password-store.sh               | 28 ++++++++++++++++++++--------<br> 4 files changed, 28 insertions(+), 10 deletions(-)<br><br>diff --git a/src/completion/pass.bash-completion b/src/completion/pass.bash-completion<br>index efd4b70..bfd2492 100644<br>--- a/src/completion/pass.bash-completion<br>+++ b/src/completion/pass.bash-completion<br>@@ -80,7 +80,7 @@ _pass()<br>                 _pass_complete_entries<br>                 ;;<br>             show|-*)<br>-                COMPREPLY+=($(compgen -W "-c --clip" -- ${cur}))<br>+                COMPREPLY+=($(compgen -W "-c --clip -n --no-color -f --full" -- ${cur}))<br>                 _pass_complete_entries 1<br>                 ;;<br>             insert)<br>diff --git a/src/completion/pass.fish-completion b/src/completion/pass.fish-completion<br>index c32a42c..5913224 100644<br>--- a/src/completion/pass.fish-completion<br>+++ b/src/completion/pass.fish-completion<br>@@ -98,6 +98,8 @@ complete -c $PROG -f -A -n '__fish_pass_uses_command edit' -a "(__fish_pass_prin<br><br> complete -c $PROG -f -A -n '__fish_pass_needs_command' -a show -d 'Command: show existing password'<br> complete -c $PROG -f -A -n '__fish_pass_uses_command show' -s c -l clip -d 'Put password in clipboard'<br>+complete -c $PROG -f -A -n '__fish_pass_uses_command show' -s n -l no-color -d 'Do not colorize text'<br>+complete -c $PROG -f -A -n '__fish_pass_uses_command show' -s f -l full -d 'Output the full password'<br> complete -c $PROG -f -A -n '__fish_pass_uses_command show' -a "(__fish_pass_print_entries)"<br> # When no command is given, `show` is defaulted.<br> complete -c $PROG -f -A -n '__fish_pass_needs_command' -s c -l clip -d 'Put password in clipboard'<br>diff --git a/src/completion/pass.zsh-completion b/src/completion/pass.zsh-completion<br>index 9bb3f97..3b0259a 100644<br>--- a/src/completion/pass.zsh-completion<br>+++ b/src/completion/pass.zsh-completion<br>@@ -108,7 +108,11 @@ _pass () {<br> _pass_cmd_show () {<br>     _arguments : \<br>         "-c[put it on the clipboard]" \<br>-        "--clip[put it on the clipboard]"<br>+        "--clip[put it on the clipboard]" \<br>+        "--full[Output the entire text]" \<br>+        "-f[Output the entire text]" \<br>+        "--no-color[Do not colorize output]" \<br>+        "-n[Do not colorize output]"<br>     _pass_complete_entries<br> }<br> _pass_complete_entries_helper () {<br>diff --git a/src/password-store.sh b/src/password-store.sh<br>index d535a74..e4f33d6 100755<br>--- a/src/password-store.sh<br>+++ b/src/password-store.sh<br>@@ -16,6 +16,9 @@ PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}"<br> X_SELECTION="${PASSWORD_STORE_X_SELECTION:-clipboard}"<br> CLIP_TIME="${PASSWORD_STORE_CLIP_TIME:-45}"<br><br>+SHOW_PASS_OBFUS='{ echo -en "$(tput setaf 1)$(tput setab 1)"; cat -; echo -en "$(tput sgr0)"; }'<br>+SHOW_PASS_CLEAR='{ cat -; }'<br>+<br> export GIT_DIR="${PASSWORD_STORE_GIT:-$PREFIX}/.git"<br> export GIT_WORK_TREE="${PASSWORD_STORE_GIT:-$PREFIX}"<br><br>@@ -223,9 +226,11 @@ cmd_usage() {<br>             List passwords.<br>         $PROGRAM find pass-names...<br>             List passwords that match pass-names.<br>-        $PROGRAM [show] [--clip,-c] pass-name<br>+        $PROGRAM [show] [--clip,-c] [--no-color,-n] [--full,-f] pass-name<br>             Show existing password and optionally put it on the clipboard.<br>+            If no color is specified the password will be shown in non-colorized text.<br>             If put on the clipboard, it will be cleared in $CLIP_TIME seconds.<br>+            If full is specified the entire contents will be used (copied or displayed), not just the first line<br>         $PROGRAM grep search-string<br>             Search for password files containing search-string when decrypted.<br>         $PROGRAM insert [--echo,-e | --multiline,-m] [--force,-f] pass-name<br>@@ -294,26 +299,33 @@ cmd_init() {<br> }<br><br> cmd_show() {<br>-    local opts clip=0<br>-    opts="$($GETOPT -o c -l clip -n "$PROGRAM" -- "$@")"<br>+    local opts clip=0 no_color=0 full=0<br>+    opts="$($GETOPT -o cnf -l clip,no-color,full -n "$PROGRAM" -- "$@")"<br>     local err=$?<br>     eval set -- "$opts"<br>     while true; do case $1 in<br>         -c|--clip) clip=1; shift ;;<br>+        -n|--no-color) no_color=1; shift ;;<br>+        -f|--full) full=1; shift ;;<br>         --) shift; break ;;<br>     esac done<br><br>-    [[ $err -ne 0 ]] && die "Usage: $PROGRAM $COMMAND [--clip,-c] [pass-name]"<br>+    [[ $err -ne 0 ]] && die "Usage: $PROGRAM $COMMAND [--clip,-c] [--no-color,-n] [--full,-f] [pass-name]"<br><br>     local path="$1"<br>     local passfile="$PREFIX/$path.gpg"<br>     check_sneaky_paths "$path"<br>     if [[ -f $passfile ]]; then<br>-        if [[ $clip -eq 0 ]]; then<br>-            $GPG -d "${GPG_OPTS[@]}" "$passfile" || exit $?<br>+        local pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile")"<br>+        if [[ $full -eq 0 ]]; then<br>+            local pass=$(echo "${pass}" | head -n 1 -)<br>+        fi<br>+        [[ -n $pass ]] || exit 1<br>+        if [[ $clip -eq 0 && $no_color -eq 0 ]]; then<br>+            echo "${pass}" | eval "${SHOW_PASS_OBFUS}"<br>+        elif [[ $clip -eq 0 ]]; then<br>+            echo "${pass}" | eval "${SHOW_PASS_CLEAR}"<br>         else<br>-            local pass="$($GPG -d "${GPG_OPTS[@]}" "$passfile" | head -n 1)"<br>-            [[ -n $pass ]] || exit 1<br>             clip "$pass" "$path"<br>         fi<br>     elif [[ -d $PREFIX/$path ]]; then<br>--<br>2.6.2<br><br><br></div></div></div>