summaryrefslogtreecommitdiff
path: root/bin/hiprompt-wmenu
diff options
context:
space:
mode:
Diffstat (limited to 'bin/hiprompt-wmenu')
-rwxr-xr-xbin/hiprompt-wmenu28
1 files changed, 28 insertions, 0 deletions
diff --git a/bin/hiprompt-wmenu b/bin/hiprompt-wmenu
new file mode 100755
index 0000000..91fd50e
--- /dev/null
+++ b/bin/hiprompt-wmenu
@@ -0,0 +1,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