xref: /linux/tools/testing/kunit/kunit-completion.sh (revision 7d726a34d68597899a43001dd2bc1aeac7801008)
1*db0c35caSRyota Sakamoto# SPDX-License-Identifier: GPL-2.0
2*db0c35caSRyota Sakamoto# bash completion support for KUnit
3*db0c35caSRyota Sakamoto
4*db0c35caSRyota Sakamoto_kunit_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
5*db0c35caSRyota Sakamoto
6*db0c35caSRyota Sakamoto_kunit()
7*db0c35caSRyota Sakamoto{
8*db0c35caSRyota Sakamoto	local cur prev words cword
9*db0c35caSRyota Sakamoto	_init_completion || return
10*db0c35caSRyota Sakamoto
11*db0c35caSRyota Sakamoto	local script="${_kunit_dir}/kunit.py"
12*db0c35caSRyota Sakamoto
13*db0c35caSRyota Sakamoto	if [[ $cword -eq 1 && "$cur" != -* ]]; then
14*db0c35caSRyota Sakamoto		local cmds=$(${script} --list-cmds 2>/dev/null)
15*db0c35caSRyota Sakamoto		COMPREPLY=($(compgen -W "${cmds}" -- "$cur"))
16*db0c35caSRyota Sakamoto		return 0
17*db0c35caSRyota Sakamoto	fi
18*db0c35caSRyota Sakamoto
19*db0c35caSRyota Sakamoto	if [[ "$cur" == -* ]]; then
20*db0c35caSRyota Sakamoto		if [[ -n "${words[1]}" && "${words[1]}" != -* ]]; then
21*db0c35caSRyota Sakamoto			local opts=$(${script} ${words[1]} --list-opts 2>/dev/null)
22*db0c35caSRyota Sakamoto			COMPREPLY=($(compgen -W "${opts}" -- "$cur"))
23*db0c35caSRyota Sakamoto			return 0
24*db0c35caSRyota Sakamoto		else
25*db0c35caSRyota Sakamoto			local opts=$(${script} --list-opts 2>/dev/null)
26*db0c35caSRyota Sakamoto			COMPREPLY=($(compgen -W "${opts}" -- "$cur"))
27*db0c35caSRyota Sakamoto			return 0
28*db0c35caSRyota Sakamoto		fi
29*db0c35caSRyota Sakamoto	fi
30*db0c35caSRyota Sakamoto}
31*db0c35caSRyota Sakamoto
32*db0c35caSRyota Sakamotocomplete -o default -F _kunit kunit.py
33*db0c35caSRyota Sakamotocomplete -o default -F _kunit kunit
34*db0c35caSRyota Sakamotocomplete -o default -F _kunit ./tools/testing/kunit/kunit.py
35