From e6e48ab8138d8d91943fda4485203a0ebaf25eef Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 11 Jul 2013 17:32:29 -0300 Subject: Initial bash completion code (#2) --- lib/keyringer/completions/bash | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lib/keyringer/completions/bash diff --git a/lib/keyringer/completions/bash b/lib/keyringer/completions/bash new file mode 100644 index 0000000..6de93bb --- /dev/null +++ b/lib/keyringer/completions/bash @@ -0,0 +1,38 @@ +# +# 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 -- cgit v1.2.3