bash completion for chicken tools
The Debian bash package features support for command line completion through the file /etc/bash_completion. This page of the chicken wiki provides a file to add completion for the chicken tools in bash.
Currently, only chicken-setup is supported. Hopefully csi and csc will follow.
Chicken 4 is currently not supported.
Use
Copy the following code in a file named chicken in /etc/bash_completion.d. Alternatively, source it after /etc/bash_completion (which is sourced from ~/.bashrc or elsewhere).
- chicken-setup <tab> completes for *.egg files.
- chicken-setup -<tab> completes for options.
# chicken-setup command line completion for bash.
#
# version 0.2 -- 2007.01.13 -- vo minh thu
# - chicken-setup <tab> completes for *.egg files.
# version 0.1 -- 2007.01.13 -- vo minh thu
_chicken_setup()
{
local cur prev frst opts
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
frst=${COMP_WORDS[1]}
opts='-help -version -repository -program-path -host \
-uninstall -list -run -script -eval -verbose \
-keep -csc-option -dont-ask -no-install -docindex \
-check -test -ls -fetch-tree -tree -svn -revision \
-local -destdir'
paroptions=${opts}
# the following options take zero or one argument
case "${prev}" in
'-repository' | '-program-path' | '-local' | '-destdir' )
COMPREPLY=( $(compgen -A directory ${cur}) )
return 0;;
'-host' )
COMPREPLY=( $(compgen -A hostname ${cur}) )
return 0;;
'-run' | '-script' | '-tree' )
COMPREPLY=( $(compgen -A file ${cur}) )
return 0;;
'-uninstall' | '-ls' )
local exts=$( chicken-setup -list | awk '{ print $1 }' )
COMPREPLY=( $(compgen -W "${exts}" -- ${cur}) )
return 0;;
esac
# the following options take zero or more arguments
case "${frst}" in
'-list' | '-test' )
local exts=$( chicken-setup -list | awk '{ print $1 }' )
COMPREPLY=( $(compgen -W "${exts}" -- ${cur}) )
return 0;;
esac
case ${cur} in
-* )
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0;;
* )
COMPREPLY=($(compgen -f -X "egg" -- ${cur}))
esac
}
[ "$have" ] && complete -F _chicken_setup chicken-setup