diff options
author | 2024-05-11 19:01:44 +0300 | |
---|---|---|
committer | 2024-05-15 22:10:53 +0300 | |
commit | 114d592416f604caf28cfc53ce6dfb1aa1c00b72 (patch) | |
tree | cf4ce4ebcee508ebade2609007e5a607e12f01ba | |
parent | fix copyright holder to Gentoo Authors (diff) | |
download | gentoo-bashcomp-114d592416f604caf28cfc53ce6dfb1aa1c00b72.tar.gz gentoo-bashcomp-114d592416f604caf28cfc53ce6dfb1aa1c00b72.tar.bz2 gentoo-bashcomp-114d592416f604caf28cfc53ce6dfb1aa1c00b72.zip |
add completion for q from app-portage/portage-utils
Signed-off-by: Arthur Zamarin <arthurzam@gentoo.org>
-rw-r--r-- | completions/q | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/completions/q b/completions/q new file mode 100644 index 0000000..1522235 --- /dev/null +++ b/completions/q @@ -0,0 +1,52 @@ +# Gentoo Linux Bash Shell Command Completion +# +# Copyright 2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License, v2 or later + +# +# q completion (from app-portage/portage-utils) +# + +_q() { + local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} + + local -A OPTS=( + [STANDALONE]='-i --install -o --overlays -e --envvar -m --mask -v --verbose + -q --quiet -C --nocolor --color -h --help -V --version' + [APPLETS]='qatom qcheck qdepends qfile qgrep qkeyword qlist qlop + qmanifest qmerge qmerge qpkg qsearch qsize qtbz2 qtegrity quse + qwhich qxpak' + [ARG]='--root' + ) + + local i + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ ${COMP_WORDS[i]} != -* ]]; then + if [[ " ${OPTS[APPLETS]} " =~ " ${COMP_WORDS[i]} " ]]; then + local root_command=${COMP_WORDS[i]} + _command_offset ${i} + else + COMPREPLY=() + fi + return + fi + + [[ ${i} -lt ${COMP_CWORD} && " ${OPTS[ARG]} " =~ " ${COMP_WORDS[i]} " ]] && ((i++)) + done + + case ${prev} in + --root) + _filedir -d + return + ;; + esac + + if [[ ${cur} = -* ]]; then + COMPREPLY=( $(compgen -W '${OPTS[STANDALONE]} ${OPTS[ARG]}' -- "${cur}") ) + else + COMPREPLY=( $(compgen -W "${OPTS[APPLETS]}" -- "${cur}") ) + fi +} && +complete -F _q q + +# vim: ft=sh:et:ts=4:sw=4:tw=80 |