#
# "bitbake autocompletion description"
#
# CREATED:	Filippo Basso <filippo@zirak.it> (12-DEC-2007)
# MODIFIED:
#
# Use: 
# - simply put it into your /etc/bash_completion.d/ directory...
# For help enhancing this script, see also:
# - http://www.debian-administration.org/articles/317
# - http://www.gnu.org/software/bash/manual/bashref.html#SEC112
#


_bitbake() 
{
	local cur conns prev options options1 i j A recipefile
	COMPREPLY=()

	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	options="--help --version --buildfile= --continue --force --interactive --cmd= --read= --verbose --debug --dry-run --parse-only --disable-psyco --show-versions --environment --graphviz --ignore-deps= --log-domains= --profile"
	options1="-h -b -k -f -i -c -r -v -D -n -p -d -s -e -g -I -l -P"

	# ------- Sanity checks -------
	if [[ ${BBPATH} == "" ]]
	then
		echo
		echo "variable \$BBPATH not set, please set it before launching bitbake... thanx"
		return 1
	fi

	# ------- Options completion -------
	if [[ ${cur} == -* ]]
	then
    		if [[ ${cur} == --* ]]
		then
			COMPREPLY=( $(compgen -W "${options}" -- ${cur}) )
			return 0
		else
       			COMPREPLY=( $(compgen -W "${options1}" -- ${cur}) )
        		return 0
		fi
	fi

	# ------- Recipe list autocompletion -------
	for i in `echo $BBPATH | sed s/:/\ /g` ;
	do
	        if [[ $i != "." ]]
	        then
	                for j in `echo $i/packages/*/${cur}*.bb` ;
	                do
				if [[ -f $j ]]
				then
	                        	recipefile=`basename $j`
	                        	conns="$conns \\n ${recipefile%%_*.bb}"
				fi
	                done
	        fi
	done
    	COMPREPLY=( $(compgen -W "${conns}" -- ${cur}) )
	return 0

}
complete -F _bitbake bitbake

