summaryrefslogtreecommitdiffstats
path: root/completions/ccache
blob: fb3f3e4829430c36ae109a2646f0a016e7abd767 (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
# ccache(1) completion                                     -*- shell-script -*-

_comp_cmd_ccache()
{
    local cur prev words cword was_split comp_args
    _comp_initialize -s -- "$@" || return

    local i
    for ((i = 1; i <= cword; i++)); do
        if [[ ${words[i]} != -* ]]; then
            _comp_command_offset $i
            return
        fi
        [[ ${words[i]} == -*[oFM] ]] && ((i++))
    done

    local noargopts='!(-*|*[FMo]*)'
    # shellcheck disable=SC2254
    case $prev in
        --help | --version | --max-files | --max-size | -${noargopts}[hVFM])
            return
            ;;
        --set-config | -${noargopts}o)
            if [[ $cur != *=* ]]; then
                _comp_compgen_split -S = -- "$("$1" -p 2>/dev/null |
                    _comp_awk '$3 = "=" { print $2 }')"
                [[ ${COMPREPLY-} == *= ]] && compopt -o nospace
            fi
            return
            ;;
    esac

    [[ $was_split ]] && return

    _comp_compgen_help
    [[ ${COMPREPLY-} == *= ]] && compopt -o nospace
} &&
    complete -F _comp_cmd_ccache ccache

# ex: filetype=sh