commit:     5da9b01ff0e33cf0d34feda669045f42d201cd8c
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Jun  7 10:20:22 2024 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Jun  7 10:20:22 2024 +0000
URL:        
https://gitweb.gentoo.org/proj/gentoo-bashcomp.git/commit/?id=5da9b01f

add completion for binutils-config

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

 completions/binutils-config | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/completions/binutils-config b/completions/binutils-config
new file mode 100644
index 0000000..ab7fa90
--- /dev/null
+++ b/completions/binutils-config
@@ -0,0 +1,45 @@
+# Gentoo Linux Bash Shell Command Completion
+#
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+#
+# binutils-config completion (from sys-devel/binutils-config)
+#
+_binutils-config() {
+    local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
+    local OPTS=(
+        -C --nocolor
+        -c --get-current-profile
+        -l --list-profiles
+        -u --uninstall
+        -d --debug
+        -B --get-bin-path
+        -L --get-lib-path
+    )
+    _list_profiles() {
+        binutils-config --nocolor --list-profiles 2>/dev/null | \
+            sed -r -e 's/\[([^]]*)\] //g' -e 's/ \*//g'
+    }
+
+    if [[ ${cur} == -* ]] ; then
+        COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "${cur}") )
+        return 0
+    elif [[ ${COMP_CWORD} -eq 1 ]] ; then
+        COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "${cur}") )
+        COMPREPLY+=( $(compgen -W '$(_list_profiles)' -- "${cur}" ))
+        return 0
+    fi
+
+    case ${prev} in
+        -c|--get-current-profile|-l|--list-profiles)
+            COMPREPLY=()
+            ;;
+        *)
+            COMPREPLY=( $(compgen -W '$(_list_profiles)' -- "${cur}") )
+            ;;
+    esac
+} &&
+complete -F _binutils-config binutils-config
+
+# vim: ft=sh:et:ts=4:sw=4:tw=80

Reply via email to