#!/bin/bash

passstore_Verzeichnis=$(
  readlink -f ~/.password-store
)

Verwendung()
{
  >&2 echo 'Nach Passwort per Regex suchen.'
  >&2 echo ''
  >&2 printf 'Verwendung: %s [OPTIONS]\n' "$(basename "$0")"
  >&2 echo \
'  --help                  display this help and exit
  --version               display version and exit'
  >&2 echo ''
  exit $1
}

eval set -- "$(
  getopt -o h \
    --long help \
    --long version \
    -n "$(basename "$0")" \
    -- "$@" \
    || echo "Verwendung"
)"

while true; do
  case "$1" in
    '-h'|'--help')
      Verwendung 0
    ;;
    '--version')
      >&2 echo '0.8.1'
      exit 0
    ;;
    '--')
      shift
      break
    ;;
    *)
      >&2 printf 'FEHLER: Verstehe Option "%s" doch nicht!\n' "$1"
      exit 1
  esac
  shift
done

if [ ! -d "${passstore_Verzeichnis}" ]; then
  >&2 printf 'Verzeichnis "%s" existiert nicht - ist pass initialisiert?\n' "${passstore_Verzeichnis}"
  exit 1
fi

if [ $# -ne 0 ]; then
  >&2 printf 'FEHLER: Zu viele (%s) Argumente:\n' "$#"
  >&2 printf '"%s"\n' "$@"
  Verwendung 1
fi

Ergebnisse=$(
  find "${passstore_Verzeichnis}" -type f -name '*.gpg' -printf '%P\n' \
  | fzf
)
if [ -z "${Ergebnisse}" ]; then
  >&2 echo 'Ich habe nichts finden können.'
  exit 1
fi

output=$(
  pass show "${Ergebnisse%.gpg}"
)

printf '%s\n' "${output}" \
| sed '
  s/^Username: //
  t
  d
' \
| xclip -i

printf "."

read dummy

printf '%s\n' "${output}" \
| head -n1 \
| xclip -i

printf "."

read dummy

echo '' \
| xclip -i
