# # 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