From 39da53ab62b710a231cef8cea50bfa316816f2ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Mon, 18 Sep 2017 21:04:04 +0200 Subject: Add completions for usbkey --- zsh_completions/usbkey | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 zsh_completions/usbkey (limited to 'zsh_completions/usbkey') diff --git a/zsh_completions/usbkey b/zsh_completions/usbkey new file mode 100644 index 0000000..0de1375 --- /dev/null +++ b/zsh_completions/usbkey @@ -0,0 +1,48 @@ +#compdef usbkey +#autoload + +_usbkey_mounted() { + mount | grep "/media/usbkey" | grep -q "/dev/mapper/usbkey" +} + +_usbkey () { + local cmd + if (( CURRENT > 2)); then + _usbkey_mounted || return + operation=${words[2]} + # Run the completion for the subcommand + case "${operation}" in + ssh-import) + [ -d "/media/usbkey/ssh" ] || return + local keys=() + for F in $(find "/media/usbkey/ssh" -name '*.pub'); do + F="${F#/media/usbkey/ssh/}" + keys+=("${F%.pub}") + done + _describe -t keys 'usbkey' keys + ;; + # TODO + esac + else + local operations=( + "mount:Mount key of usb driver" + "unmount:Unmount usb driver" + "sync:Synchronize drive to bakup drive" + ) + if _usbkey_mounted; then + operations+=( + "gpg-import:Import gpg key" + "ssh-import:Import ssh key" + "ssh-generate:Generate new ssh key" + "ssh-list:List all keys in store" + "openvpn-list:List all keys" + "openvpn-get:Get keys for some host" + "openvpn-generate:Generate key for new host" + ) + fi + _describe -t operations 'usbkey' operations + _arguments : "--help[Output help message]" + fi +} + +_usbkey -- cgit v1.2.3