summaryrefslogtreecommitdiff
path: root/completions/procps
blob: b12b936e99db0b3d52fb69b7d3ec72b00e2d2664 (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Completions for tools included in procps and related

# killall(1) (Linux, FreeBSD and Darwin) and pkill(1) completion.
#
[[ $UNAME == @(Linux|FreeBSD|Darwin) ]] || have pkill &&
_killall()
{
    local cur prev words cword
    _init_completion || return

    if [[ $cword -eq 1 && "$cur" == -* ]]; then
        _signals
    else
        _pnames
    fi

    return 0
}
[[ $UNAME == @(Linux|FreeBSD|Darwin) ]] && complete -F _killall killall
have pkill && complete -F _killall pkill

# pgrep(1) completion.
#
[ $UNAME = Linux ] || have pgrep &&
_pgrep()
{
    local cur prev words cword
    _init_completion || return

    case $prev in
        -d|-g|-s|-t)
            return
            ;;
        -G)
            _gids
            return
            ;;
        -P)
            _pids
            return
            ;;
        -u|-U)
            _uids
            return
            ;;
    esac

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

    _pnames
}
have pgrep && complete -F _pgrep pgrep

# Linux pidof(8) completion.
[ $UNAME = Linux ] && complete -F _pgrep pidof

have pwdx &&
_pwdx()
{
    local cur prev words cword
    _init_completion || return

    [[ $prev == -V ]] && return

    if [[ $cur == -* ]]; then
        COMPREPLY=( $( compgen -W '-V' -- "$cur" ) )
    else
        _pids
    fi
} &&
complete -F _pwdx pwdx

[[ $UNAME == Linux ]] && have watch &&
_watch()
{
    local cur prev words cword split
    _init_completion -s || return

    local offset=0 i
    for (( i=1; i <= cword; i++ )); do
        case ${words[i]} in
            -h|--help|--version)
                return
                ;;
            -n|--interval)
                (( i++ ))
                continue
                ;;
            -*)
                continue
                ;;
        esac
        offset=$i
        break
    done

    if [[ $offset -gt 0 ]]; then
        _command_offset $offset
        return
    fi

    case $prev in
        -d|--differences)
            [[ $cur != -* ]] && \
                COMPREPLY=( $( compgen -W 'cumulative' -- "$cur" ) )
            return
            ;;
        -n|--interval)
            return
            ;;
    esac

    $split && return

    if [[ $cur == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" )' -- "$cur" ) )
        [[ $COMPREPLY == *= ]] && compopt -o nospace
        return
    fi
} &&
complete -F _watch watch

# Local variables:
# mode: shell-script
# sh-basic-offset: 4
# sh-indent-comment: t
# indent-tabs-mode: nil
# End:
# ex: ts=4 sw=4 et filetype=sh