#!/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