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