48 lines
1.3 KiB
Bash
48 lines
1.3 KiB
Bash
#
|
|
# Bash completion file for CakePHP console.
|
|
# Copy this file to a file named `cake` under `/etc/bash_completion.d/`.
|
|
# For more info check https://book.cakephp.org/4/en/console-commands/completion.html#how-to-enable-bash-autocompletion-for-the-cakephp-console
|
|
#
|
|
|
|
_cake()
|
|
{
|
|
local cur prev opts cake
|
|
COMPREPLY=()
|
|
cake="${COMP_WORDS[0]}"
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
|
|
if [[ "$cur" == -* ]] ; then
|
|
if [[ ${COMP_CWORD} = 1 ]] ; then
|
|
opts=$(${cake} completion options)
|
|
elif [[ ${COMP_CWORD} = 2 ]] ; then
|
|
opts=$(${cake} completion options "${COMP_WORDS[1]}")
|
|
else
|
|
opts=$(${cake} completion options "${COMP_WORDS[1]}" "${COMP_WORDS[2]}")
|
|
fi
|
|
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
|
|
if [[ ${COMP_CWORD} = 1 ]] ; then
|
|
opts=$(${cake} completion commands)
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
return 0
|
|
fi
|
|
|
|
if [[ ${COMP_CWORD} = 2 ]] ; then
|
|
opts=$(${cake} completion subcommands $prev)
|
|
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
if [[ $COMPREPLY = "" ]] ; then
|
|
_filedir
|
|
return 0
|
|
fi
|
|
return 0
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
complete -F _cake cake bin/cake
|