summaryrefslogtreecommitdiff
path: root/completions/util-linux
blob: c31acb51ad44eeb249216f6751f14d73f2088e5a (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
133
134
135
136
137
138
139
140
141
142
143
144
145
# Completions for tools included in util-linux (not necessarily Linux specific)

# renice(8) completion
#
_renice()
{
    local cur prev words cword
    _init_completion || return

    local command=$1 curopt i=0

    # walk back through command line and find last option
    while [[ $i -le $cword && ${#COMPREPLY[@]} -eq 0 ]]; do
        curopt=${words[cword-$i]}
        case "$curopt" in
            -u)
                _allowed_users
                ;;
            -g)
                _pgids
                ;;
            -p|$command)
                _pids
                ;;
        esac
        i=$(( ++i ))
    done
} &&
complete -F _renice renice

# kill(1) completion
#
_kill()
{
    local cur prev words cword
    _init_completion || return

    if [[ $cword -eq 1 && "$cur" == -* ]]; then
        # return list of available signals
        _signals
    else
        # return list of available PIDs
        _pids
    fi
} &&
complete -F _kill kill

# look(1) completion
#
_look()
{
    local cur prev words cword
    _init_completion || return

    if [[ $cword -eq 1 ]]; then
        COMPREPLY=( $( compgen -W '$(look "$cur" 2>/dev/null)' -- "$cur" ) )
    fi
} &&
complete -F _look -o default look

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

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

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

    case $prev in
        -c)
            COMPREPLY=( $( compgen -W '{0..3}' -- "$cur" ) )
            return
            ;;
        -n)
            COMPREPLY=( $( compgen -W '{0..7}' -- "$cur" ) )
            return
            ;;
        -p)
            _pids
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_help "$1" -h )' -- "$cur" ) )
        return
    fi
} &&
complete -F _ionice ionice

_dmesg()
{
    [[ $OSTYPE == *solaris* ]] && return # no args there

    local cur prev words cword
    _init_completion || return

    case $prev in
        -s|-M|-N)
            return
            ;;
        -n)
            COMPREPLY=( $( compgen -W '{1..8}' -- "$cur" ) )
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        COMPREPLY=( $( compgen -W '$( _parse_usage "$1" )' -- "$cur" ) )
        return
    fi
} &&
complete -F _dmesg dmesg

# 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