From b86c84df6055d22c3d6fad367255a63847b29b01 Mon Sep 17 00:00:00 2001 From: Malin Freeborn Date: Sun, 7 Apr 2024 19:42:48 +0200 Subject: [PATCH] add showpass.sh --- scripts/showpass.sh | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 scripts/showpass.sh diff --git a/scripts/showpass.sh b/scripts/showpass.sh new file mode 100755 index 0000000..794af99 --- /dev/null +++ b/scripts/showpass.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +# If you make a symlink from dmzadmin/credentials to your password +# store, you can search through those passwords like any other. +# Or, you can search through those passwords even faster with this script. + +pass_store=~/.password-store + +sanity_check(){ + command -v $1 >/dev/null || ( + echo "You must install $1" + exit 1 + ) +} + +set_selector_if_program_exists(){ + command -v "$1" > /dev/null && selector="$1 $2" +} + +if [ -z "$DISPLAY" ]; then + set_selector_if_program_exists sk || \ + set_selector_if_program_exists fzy || \ + set_selector_if_program_exists fzf + fail_sender='echo' +else + set_selector_if_program_exists "rofi" 'rofi -dmenu "$@"' || \ + set_selector_if_program_exists dmenu || \ + ( + echo "Cannot find anything to select a key. Install dmenu." + exit 1 + ) + fail_sender='notify-send' +fi + +list_keys(){ + find -L . -mindepth 1 -type f -name "*.gpg" | \ + sed 's/\.\///' | \ + sed 's/.gpg//' +} + +#################### + +set -e + +sanity_check pass + +cd "$pass_store" + +password="$(list_keys | $selector)" + +pass -c "$password" || $fail_sender 'Cannot decrypt' +