summaryrefslogtreecommitdiff
path: root/bin/hiprompt-wmenu
blob: 91fd50ee33ee02bd52bd430d455915bf2144c0f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh

read -r version
[ ! "$version" = 'version' ] && exit 1
printf 'version 0.0.0\n'

keys=
while read -r command; do
	case "$command" in
	'key '*)
		keys="$keys\n${command#key\ }"
		;;
	'prompt '*)
		case  "${command#prompt\ }" in
			disclose) prompt='Disclose keys?' ;;
			delete) prompt='Delete keys?' ;;
		esac
		exec test "$(printf 'Yes\nNo\n%b\n' "$keys" | wmenu -l 20 -p "$prompt")" = Yes
		;;
	'password incorrect'|'unlock')
		prompt='Unlock keyring:'
		[ "$command" = 'password incorrect' ] && prompt="Password incorrect. $prompt"
		pass="$(wmenu -p "$prompt" </dev/null)"
		[ -z "$pass" ] && exit 1
		printf 'password %s\n' "$pass"
		;;
	esac
done