summaryrefslogtreecommitdiff
path: root/completions/ulimit
blob: e596bf72c25de333cf181e55bf81138fd2ed01fe (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
# bash completion for ulimit                               -*- shell-script -*-

_ulimit()
{
    local cur prev words cword
    _init_completion || return

    # TODO combined option support (-aH, -Sc etc)

    local mode
    case $prev in
        -a)
            COMPREPLY=($(compgen -W "-S -H" -- "$cur"))
            return
            ;;
        -[SH]) ;;

        -*)
            mode=$prev
            ;;
    esac

    if [[ ! -v mode ]]; then
        local word
        for word in "${words[@]}"; do
            [[ $word == -*a* ]] && return
        done

        if [[ $cur == -* ]]; then
            COMPREPLY=($(compgen -W '$(_parse_usage "$1")' -- "$cur"))
            return
        fi
    fi

    local args
    _count_args
    ((args == 1)) &&
        COMPREPLY=($(compgen -W "soft hard unlimited" -- "$cur"))
} &&
    complete -F _ulimit ulimit

# ex: filetype=sh