# # Keyringer bash completion # _keyringer() { local cur prev opts COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" # Initial options opts="`ls $HOME/.keyringer | sed -e 's/config//'`" # Available keyrings keyrings="`echo $opts | sed -e 's/ /|/'`" # The current keyring keyring="${COMP_WORDS[1]}" # Command completions if [ "${#COMP_WORDS[@]}" == "3" ] && echo "${prev}" | grep -qe "[$keyrings]"; then opts="`keyringer $keyring commands`" else case "${prev}" in ls) opts="`keyringer $keyring ls ${cur}`" ;; *) ;; esac fi # Return the available options COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) return 0 } complete -F _keyringer keyringer