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