diff options
author | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-06-19 10:30:03 +0200 |
---|---|---|
committer | Raymaekers Luca <raymaekers.luca@gmail.com> | 2024-06-19 10:30:03 +0200 |
commit | ff6c38d3364165a7bae431888a87aab1e53a80b9 (patch) | |
tree | c0ac13cdbf388d59193522eb8775788a6fae3e81 /bin/menuscripts/mpass | |
parent | 4bf952169c5d94044a6dd3c868c990716d22c58b (diff) | |
parent | 05e1216b45340702f82a4946002015a05cebe9b1 (diff) |
Merge branch 'main' of debuc.com:dotfiles
Diffstat (limited to 'bin/menuscripts/mpass')
-rwxr-xr-x | bin/menuscripts/mpass | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/bin/menuscripts/mpass b/bin/menuscripts/mpass new file mode 100755 index 0000000..7348321 --- /dev/null +++ b/bin/menuscripts/mpass @@ -0,0 +1,27 @@ +#!/usr/bin/env sh +store="${PASSWORD_STORE_DIR:-$HOME/.password-store}" + +# list passwords, group directories first +list_pswds() +{ + find "$1" \ + -maxdepth 1 -mindepth 1 \ + -not -name '.*' -type d -printf "%y\t%f\n" -o \ + -not -name '.*' -not -type d -printf "%y\t%f\n" | + sort -k1 -k2 | + cut -f 2 | sed 's/\.gpg$//' +} + +while [ -d "$store/$file" ] +do + choice="$(list_pswds "$store/$file" | dmenu -c -g 4 -l 4)" + [ "$choice" ] || exit 1 + [ -z "$file" ] && file="$choice" || file="$file/$choice" +done +[ "$file" ] || exit 1 + +pass show -c "$file" || exit 1 +notify-send -t 1000 "mpass" "copied: $file" + +[ "$WAYLAND_DISPLAY" ] && cliphist list >/dev/null && # on wayland and cliphist is running + cliphist list | head -n 1 | cliphist delete |