# 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})) ;; openvpn-get) [ -d "/media/usbkey/openvpn" ] || return local certs for F in $(find "/media/usbkey/openvpn" -name 'ca.crt' -o -name '*.crt' -print); do F="${F#/media/usbkey/openvpn/}" certs="$certs ${F%.crt}" done COMPREPLY+=($(compgen -W "${certs}" -- ${cur})) ;; esac else local ops="-h --help mount sync" if _usbkey_mounted; then ops="$ops unmount gpg-import ssh-list ssh-generate ssh-import openvpn-list openvpn-get openvpn-generate" fi COMPREPLY+=($(compgen -W "${ops}" -- ${cur})) fi } complete -F _usbkey usbkey