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

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

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

    local mode=
    case $prev in
        -a)
            _comp_compgen -- -W "-S -H"
            return
            ;;
        -[SH]) ;;

        -*)
            mode=$prev
            ;;
    esac

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

        if [[ $cur == -* ]]; then
            _comp_compgen_usage -c help -s "$1"
            return
        fi
    fi

    [[ ${mode-} ]] && _comp_compgen -- -W "soft hard unlimited"
} &&
    complete -F _comp_cmd_ulimit ulimit

# ex: filetype=sh