pass-type 827 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env bash
  2. shopt -s nullglob globstar
  3. typeit=1
  4. if [[ $1 == "--no-type" ]]; then
  5. typeit=0
  6. shift
  7. elif [[ $1 == "-n" ]] ; then
  8. typeit=0
  9. shift
  10. elif [[ $1 != "" ]] ; then
  11. password=$1
  12. fi
  13. prefix=${PASSWORD_STORE_DIR-~/.password-store}
  14. password_files=( "$prefix"/**/*.gpg )
  15. password_files=( "${password_files[@]#"$prefix"/}" )
  16. password_files=( "${password_files[@]%.gpg}" )
  17. if [[ $password == "" ]] ; then
  18. if [[ -e `which rofi` ]] ; then
  19. password=$(printf '%s\n' "${password_files[@]}" | rofi -dmenu -p 'password: ')
  20. else
  21. password=$(printf '%s\n' "${password_files[@]}" | dmenu -p 'password: ')
  22. fi
  23. fi
  24. [[ -n $password ]] || exit
  25. if [[ $typeit -eq 0 ]]; then
  26. pass show -c "$password" 2>/dev/null
  27. else
  28. pass show "$password" | { read -r pass; printf %s "$pass"; } |
  29. xvkbd -xsendevent -file -
  30. fi