aboutsummaryrefslogtreecommitdiff
path: root/bash_completions
diff options
context:
space:
mode:
Diffstat (limited to 'bash_completions')
-rw-r--r--bash_completions/usbkey35
1 files changed, 35 insertions, 0 deletions
diff --git a/bash_completions/usbkey b/bash_completions/usbkey
new file mode 100644
index 0000000..10cb0b9
--- /dev/null
+++ b/bash_completions/usbkey
@@ -0,0 +1,35 @@
+# Bash completion file for usbkey
+# vim: ft=sh
+
+_usbkey_mounted() {
+ mount | grep "/media/usbkey" | grep -q "/dev/mapper/usbkey"
+}
+
+_usbkey() {
+ local cur prev
+ _init_completion || return
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ if [[ $COMP_CWORD -gt 1 ]]; then
+ _usbkey_mounted || return
+ case "${COMP_WORDS[1]}" 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="$keys ${F%.pub}"
+ done
+ COMPREPLY+=($(compgen -W "${keys}" -- ${cur}))
+ ;;
+ esac
+ else
+ local ops="-h --help mount sync"
+ if _usbkey_mounted; then
+ ops="$ops unmount ssh-list ssh-generate ssh-import"
+ fi
+ COMPREPLY+=($(compgen -W "${ops}" -- ${cur}))
+ fi
+}
+
+complete -F _usbkey usbkey