I currently have a Bash completion file which completes a single parameter from a list of allowed commands for a script (called "pbt"). This is the working Bash Completion file:
_pbt_complete()
{
local cur goals
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
goals='asadmin clean deploy'
cur=`echo $cur`
COMPREPLY=($(compgen -W "${goals}" ${cur}))
}
complete -F _pbt_complete pbt
So if i call
pbt <tab>
Bash completes to all allowed commands (asadmin, clean, deploy), which is okay.
Now i want to add a "second" level to the completion. So for example if i type
pbt asadmin <tab>
it should complete all options that are only available inside the asadmin-"environment" (which i'll also define inside the bash completion file), say for example pbt asadmin [start-domain|stop-domain] But if i type
pbt deploy <tab>
it should complete to another set of options, for example pbt deploy [all|current]. So the options for the second command should always depend on the first command. How can i do that in the completion file?