28 lines
923 B
Bash
Executable file
28 lines
923 B
Bash
Executable file
#!/bin/bash
|
|
|
|
## A wrapper for pass to use fzf to find passwords.
|
|
|
|
prefix=${PASSWORD_STORE_DIR:=~/.password-store}
|
|
prefixlength=${#prefix}
|
|
|
|
## Get all the gpg files in all directories and subdirs...
|
|
## remove the prefix, some 3 extra chars and the .gpg ending
|
|
password_files=$( find $prefix -name '*.gpg' \
|
|
| cut --characters ${#prefix}- \
|
|
| cut --characters 3- \
|
|
| rev | cut --characters 5- | rev
|
|
)
|
|
|
|
## Send the filelist to fzf, use # for a preview and
|
|
## disable the fzf mous to use the primary selection
|
|
password=$( printf '%s\n' "${password_files[@]}" \
|
|
| fzf --bind='#:toggle-preview' \
|
|
--preview='pass show {}' \
|
|
--preview-window="hidden" \
|
|
--no-mouse \
|
|
$@ \
|
|
)
|
|
## Exit if nothing was selected
|
|
test "_$password" = "_" && exit
|
|
|
|
pass show -c "$password" 2>/dev/null
|