summaryrefslogtreecommitdiff
path: root/shell-completion/zsh/_elogind-inhibit
blob: 764713e28adc1e35c4b36d243f8bb50586a3b58e (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
#compdef systemd-inhibit
# SPDX-License-Identifier: LGPL-2.1+

_systemd_inhibit_command(){
    if (( CURRENT == 1 )); then
        compset -q
        _normal
    else
        local n=${words[(b:2:i)[^-]*]}
        if (( n <= CURRENT )); then
            compset -n $n
            _alternative \
                'files:file:_files' \
                'commands:command:_normal' && return 0
        fi
        _default
    fi
}

_inhibit_what() {
    local _inhibit
    _inhibit=(shutdown sleep idle handle-power-key handle-suspend-key handle-hibernate-key handle-lid-switch)
    _values -s : "${_inhibit[@]}"
}

_arguments \
    {-h,--help}'[Show this help]' \
    '--version[Show package version]' \
    '--what=[Operations to inhibit]:options:_inhibit_what' \
    '--who=[A descriptive string who is inhibiting]:who is inhibiting:' \
    '--why=[A descriptive string why is being inhibited]:reason for the lock:' \
    '--mode=[One of block or delay]:lock mode:( block delay )' \
    '--list[List active inhibitors]' \
    '*:commands:_systemd_inhibit_command'