diff --git a/completion/available/capistrano.completion.bash b/completion/available/capistrano.completion.bash new file mode 100644 index 00000000..a48bd4d6 --- /dev/null +++ b/completion/available/capistrano.completion.bash @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# Bash completion support for Capistrano. + +export COMP_WORDBREAKS=${COMP_WORDBREAKS/\:/} + +_capcomplete() { + if [ -f Capfile ]; then + recent=`ls -t .cap_tasks~ Capfile **/*.cap 2> /dev/null | head -n 1` + if [[ $recent != '.cap_tasks~' ]]; then + cap --tool --tasks | cut -d " " -f 2 > .cap_tasks~ + fi + COMPREPLY=($(compgen -W "`cat .cap_tasks~`" -- ${COMP_WORDS[COMP_CWORD]})) + return 0 + fi +} + +complete -o default -o nospace -F _capcomplete cap