diff options
Diffstat (limited to 'passfi')
-rwxr-xr-x | passfi | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -0,0 +1,30 @@ +#!/usr/bin/env bash +set -x + +shopt -s nullglob globstar + +if [[ $1 == "otp" ]]; then + otp=1 +fi + +prefix=${PASSWORD_STORE_DIR-~/.password-store} +password_files=("$prefix"/**/*.gpg) +password_files=("${password_files[@]#"$prefix"/}") +password_files=("${password_files[@]%.gpg}") + +if [[ ! $otp -eq 0 ]]; then + for f in "${password_files[@]}"; do + [[ $f == *"otp"* ]] && otp_files+=("$f") + done + password_files=("${otp_files[@]}") +fi + +password=$(printf '%s\n' "${password_files[@]}" | wofi --show dmenu "$@") + +[[ -n $password ]] || exit + +if [[ $otp -eq 0 ]]; then + pass show -c "$password" 2>/dev/null +else + pass otp show -c "$password" 2>/dev/null +fi |