#! /bin/sh set -efu #PATH= case ${FZMENU_PHASE-0} in 0) export FZMENU_PHASE=1 exec setsid -f terminal dash "$0" ;; 1) if result=$( FZF_DEFAULT_OPTS=${FZMENU_FZF_DEFAULT_OPTS-} if test -n "$FZF_DEFAULT_OPTS"; then export FZF_DEFAULT_OPTS fi pass git ls-files '*/*.gpg' | \ sed ' /\/otp\.gpg$:/d s/\.gpg$// ' | exec fzf \ --history=/dev/null \ --no-sort \ --prompt='pass: ' \ ) then export FZMENU_PHASE=2 export FZMENU_RESULT="$result" setsid -f "$0" fi ;; 2) pass=$(pass show "$FZMENU_RESULT") printf %s "$pass" | xdotool type -f - ;; *) echo "$0: error: bad phase: $FZMENU_PHASE" >&2 exit -1 esac