#!/bin/sh

_gpg-unlock
set -xe

find_file() {
  fd --strip-cwd-prefix '\.gpg$' |
  sd ".gpg$" "" |
  wdmenu -p "Password" $@
}

main() {
    test -n "$PASSWORD_STORE_DIR" &&
      cd "$PASSWORD_STORE_DIR" ||
      cd "$HOME/.password-store"

    entry=`find_file "$@"`

    test -n "$entry" || exit 0

    username=`pass show "$entry" 2>/dev/null | perl -ne 'print $2 if /^(login|user|email): (.*)/'`
    password=`pass show "$entry" 2>/dev/null | head -n 1`

    action=`printf "Autotype\nUsername -> $username\nPassword" | wdmenu -p Action`

    case $action in
        Autotype)
            autotype
            ;;
        Username*)
            printf '%s' "$username" | wl-copy;;
        Password)
            printf '%s' "$password" | wl-copy;;
    esac

}

autotype(){
    if pgrep qutebrowser >/dev/null; then
        qutebrowser ":mode-enter insert"
    fi

    env wtype -s 100 "$username"
    env wtype -s 100 -k tab
    env wtype -s 100 "$password"
}

main