25 lines
781 B
Bash
25 lines
781 B
Bash
|
#!/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 --version | grep 'Capistrano v2.' > /dev/null
|
||
|
if [ $? -eq 0 ]; then
|
||
|
# Capistrano 2.x
|
||
|
cap --tool --verbose --tasks | cut -d " " -f 2 > .cap_tasks~
|
||
|
else
|
||
|
# Capistrano 3.x
|
||
|
cap --all --tasks | cut -d " " -f 2 > .cap_tasks~
|
||
|
fi
|
||
|
fi
|
||
|
COMPREPLY=($(compgen -W "`cat .cap_tasks~`" -- ${COMP_WORDS[COMP_CWORD]}))
|
||
|
return 0
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
complete -o default -o nospace -F _capcomplete cap
|