diff options
-rw-r--r-- | completions/qwhich | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/completions/qwhich b/completions/qwhich new file mode 100644 index 0000000..87959b9 --- /dev/null +++ b/completions/qwhich @@ -0,0 +1,49 @@ +# Gentoo Linux Bash Shell Command Completion +# +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License, v2 or later + +source "@helpersdir@/gentoo-common.sh" + +# +# qwhich completion (from app-portage/portage-utils) +# + +_qwhich() { + local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} + + local -A OPTS=( + [STANDALONE]='-I --vdb -b --binpkg -t --tree -p --pretty -d --dir + -R --repo -f --first -l --latest -T --novirtual -A --noacct + -v --verbose -q --quiet -C --nocolor --color -h --help -V --version' + [ARG]='-F --format --root' + ) + + local i pkg_type="-I" + for word in "${COMP_WORDS[@]}"; do + if [[ ${word} = "-t" || ${word} = "--tree" ]]; then + pkg_type="-A" + break + fi + done + + case ${prev} in + --root) + _filedir -d + return + ;; + -F|--format) + COMPREPLY=() + return + ;; + esac + + if [[ ${cur} = -* ]]; then + COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "${cur}") ) + else + _pkgname ${pkg_type} "${cur}" + fi +} && +complete -F _qwhich qwhich + +# vim: ft=sh:et:ts=4:sw=4:tw=80 |