summaryrefslogtreecommitdiff
path: root/completions/ulimit
blob: 3887cdf5715c284d14dde77f56ce65ec1b9fc822 (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 [[ -z "$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 -eq 1 ]] && \
        COMPREPLY=( $(compgen -W "soft hard unlimited" -- "$cur") )
} &&
complete -F _ulimit ulimit

# ex: filetype=sh