diff options
-rw-r--r-- | completions/qdepends | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/completions/qdepends b/completions/qdepends new file mode 100644 index 0000000..0c6111d --- /dev/null +++ b/completions/qdepends @@ -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" + +# +# qdepends completion (from app-portage/portage-utils) +# + +_qdepends() { + local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} + + local -A OPTS=( + [STANDALONE]='-d --depend -r --rdepend -p --pdepend -b --bdepend -I --idepend + -Q --query -i --installed -t --tree -U --use -S --pretty -R --resolve + -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 _qdepends qdepends + +# vim: ft=sh:et:ts=4:sw=4:tw=80 |