# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
# ex: ts=8 sw=8 noet filetype=sh
#
# bash completion for lilo(8)

have lilo && {
_lilo_labels()
{
	COMPREPLY=( $( compgen -W "$( awk -F'=' '/label/ {print $2}' \
		/etc/lilo.conf | sed -e 's/\"//g' )" -- $cur ) )
}

_lilo()
{
	local cur prev

	COMPREPLY=()
	cur=`_get_cword`
	prev=${COMP_WORDS[COMP_CWORD-1]}

	case $prev in
		-@(C|i|m|s|S))
			_filedir
			return 0
			;;
		-r)
			_filedir -d
			return 0
			;;
		-@(I|D|R))
			# label completion
			_lilo_labels
			return 0
			;;
		-@(A|b|M|u|U))
			# device completion
			cur=${cur:=/dev/}
			_filedir
			return 0
			;;
		-T)
			# topic completion
			COMPREPLY=( $( compgen -W 'help ChRul EBDA geom geom= \
					table= video' -- $cur ) )
			return 0
			;;
	esac

	if [[ "$cur" == -* ]]; then
		# relevant options completion
		COMPREPLY=( $( compgen -W '-A -b -c -C -d -f -g -i -I -l -L -m \
			-M -p -P -q -r -R -s -S -t -T -u -U -v -V -w -x -z' -- \
			$cur ) )
	fi
}
complete -F _lilo lilo
}
