summaryrefslogtreecommitdiff
blob: ab7fa90a54500054322a20f7d625704286ecf7f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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