# Gentoo linux command completion. # _emerge() { local cur prev grepcmd sedcmd systemactions setsma setbig portagedir portagedir=/usr/portage COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} if [ $COMP_CWORD -eq 1 ] && [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W '--pretend \ --autoclean \ --usepkg \ --buildpkg' | grep ^$cur ) ) elif [ "$prev" == "--usepkg" ]; then COMPREPLY=( $( compgen -f $cur ) ) else cd ${portagedir} grepcmd="grep -E ^$cur.*" sedcmd="sed -e /CVS/d \ -e /BUGS-TODO/d \ -e /ChangeLog.*/d \ -e /header.txt/d \ -e /skel.build/d \ -e /distfiles/d \ -e /eclass/d \ -e /files/d \ -e /incoming/d \ -e /packages/d \ -e /profiles/d \ -e /scripts/d" systemactions=$'\n'"system"$'\n'"update" if [ $cur ]; then if [ `echo $cur | grep '/'` ]; then setbig="`compgen -G "$cur*" | $sedcmd`"$systemactions COMPREPLY=( $( echo "$setbig" | $grepcmd ) ) else setsma="`compgen -S '/' -G "$cur*" | $sedcmd`"$systemactions if [ `echo "$setsma" | $grepcmd | grep '/' | wc -l` = 1 ]; then setbig="`compgen -G "*/*" | $sedcmd`"$systemactions COMPREPLY=( $( echo "$setbig" | $grepcmd ) ) else COMPREPLY=( $( echo "$setsma" | $grepcmd ) ) fi fi else setsma="`compgen -S '/' -G "$cur*" | $sedcmd`"$systemactions COMPREPLY=( $( echo "$setsma" ) ) fi fi return 0 } complete -F _emerge emerge _ebuild() { local cur prev COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} if [ $COMP_CWORD -eq 1 ]; then COMPREPLY=( $( compgen -f $cur ) ) elif [ $COMP_CWORD -eq 2 ]; then COMPREPLY=( $( compgen -W 'clean \ compile \ fetch \ install \ merge \ package \ qmerge \ remerge \ rpm \ unmerge \ unpack' $cur ) ) fi return 0 } complete -F _ebuild ebuild _rc-update() { local cur prev initdir runlvdir initdir=/etc/init.d/ runlvdir=/etc/runlevels/ COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} if [ $COMP_CWORD -eq 1 ]; then COMPREPLY=( $( compgen -W 'add del' $cur ) ) elif [ $COMP_CWORD -eq 2 ]; then cd $initdir COMPREPLY=( $( compgen -G "$cur*" ) ) elif [ $COMP_CWORD -eq 3 ]; then cd $runlvdir COMPREPLY=( $( compgen -G "$cur*" ) ) fi return 0 } complete -F _rc-update rc-update