#!/bin/sh

set -e

if [ -t 1 ]; then
	pick() {
		sk
	}
	inject() {
		echo "$@"
	}
else
	window="$(xdotool getwindowfocus)"
	pick() {
		dmenu -i -l 10
	}
	inject() {
		xdotool type --clearmodifiers --window "$window" "$*"
		xdotool windowfocus "$window"
	}
fi

choice="$(pick <<HERE
email address
password
clipboard
selection
run
otp
student
HERE
)"

case "$choice" in
'email address')
	choice="$(khard email -p --remove-first-line | sed 's/\(.*\)\t\(.*\)\t\(.*\)/\2 <\1>/' | pick)"
	inject "$choice"
	;;
'password')
	choice="$(cd ~/.password-store; find * -name '*.gpg' | sed 's/\.gpg$//' | sort -d | pick)"
	inject "$(pass show "$choice" | head -1)"
	;;
'clipboard')
	inject "$(xclip -o -sel c)"
	;;
'selection')
	inject "$(xclip -o)"
	;;
'run')
	choice="$(dmenu_path | pick)"
	exec "$choice"
	;;
'otp')
	choice="$(cd ~/.password-store/otp; find * -name '*.gpg' | sed 's/\.gpg$//' | sort -d | pick)"
	inject "$(pass otp code otp/"$choice" | head -1)"
	;;
'student')
	choice="$(pick < /data/courses/students.csv)"
	inject "$choice"
	;;
esac