# sluice tab completion for bash.
#
# Copyright (C) 2020 Canonical
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

_sluice()
{
	local cur prev words cword
	_init_completion || return

	case "$prev" in
        '-p')	COMPREPLY=( $(compgen -W '$(command ps axo pid | sed 1d) ' $cur ) )
		return 0
		;;
	'-c')	COMPREPLY=( $(compgen -W "delay" -- $cur) )
		return 0
		;;
	'-f')	COMPREPLY=( $(compgen -W "freq" -- $cur) )
		return 0
		;;
	'-i')	COMPREPLY=( $(compgen -W "iosize" -- $cur) )
		return 0
		;;
	'-I')	_filedir
		return 0
		;;
	'-m')	COMPREPLY=( $(compgen -W "maxsize" -- $cur) )
		return 0
		;;
	'-O')	_filedir
		return 0
		;;
	'-P')	_filedir
		return 0
		;;
	'-r')	COMPREPLY=( $(compgen -W "rate" -- $cur) )
		return 0
		;;
	'-s')	COMPREPLY=( $(compgen -W "shift" -- $cur) )
		return 0
		;;
	'-t')	_filedir
		return 0
		;;
	'-T')	COMPREPLY=( $(compgen -W "seconds" -- $cur) )
		return 0
		;;
	'-x')	COMPREPLY=( $(compgen -W "xfersize" -- $cur) )
		return 0
		;;
	esac

	case "$cur" in
                -*)
                        OPTS="-a -c -d -D -e -f -h -i -I -m -n -o -O -p -P -r -R -s -S -t -T -u -v -V -w -x -z"
                        COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
                        return 0
                        ;;
        esac
	return 0
}

# load the completion
complete -F _sluice sluice
