summaryrefslogtreecommitdiff
blob: b86eee80140deec5f52998b940b04dbe4f016b0b (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
# Gentoo Linux Bash Shell Command Completion
#
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License, v2 or later

#
# ebuild completion command
#
_ebuild()
{
    local i noopts seenf cur=${COMP_WORDS[COMP_CWORD]}
    local cmds=(
        help setup clean fetch digest manifest unpack compile test preinst
        install postinst qmerge merge unmerge prerm postrm config package rpm
        configure prepare instprep
    )
    local opts=( --debug --force --ignore-default-opts --skip-manifest --help )

    for (( i=1 ; i < ${COMP_CWORD} ; i++ )) ; do
        [[ ${noopts} || ${COMP_WORDS[$i]/#-*} ]] && seenf=1
        [[ ${COMP_WORDS[$i]} == "--" ]] && noopts=1
    done

    if [[ ${seenf} ]] ; then
        COMPREPLY=( $(compgen -W '${cmds[*]}' -- "${cur}") )
    else
        _filedir ebuild
    fi

    [[ ${noopts} ]] || COMPREPLY+=( $(compgen -W '${opts[*]}' -- "${cur}") )
    return 0
} &&
complete -o filenames -F _ebuild ebuild

# vim: ft=sh:et:ts=4:sw=4:tw=80