commit:     a338e2564a05127c7aa6f3170d2de3fa305a0655
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Sat May 11 19:38:17 2024 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Wed May 15 19:10:53 2024 +0000
URL:        
https://gitweb.gentoo.org/proj/gentoo-bashcomp.git/commit/?id=a338e256

add completion for qdepends from app-portage/portage-utils

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 completions/qdepends | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

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

Reply via email to