1#compdef systemd-inhibit
2# SPDX-License-Identifier: LGPL-2.1-or-later
3
4(( $+functions[_systemd-inhibit_commands] )) ||
5_systemd-inhibit_commands(){
6    if (( CURRENT == 1 )); then
7        compset -q
8        _normal
9    else
10        local n=${words[(b:2:i)[^-]*]}
11        if (( n <= CURRENT )); then
12            compset -n $n
13            _alternative \
14                'files:file:_files' \
15                'commands:command:_normal' && return 0
16        fi
17        _default
18    fi
19}
20
21(( $+functions[_systemd-inhibit_what] )) ||
22_systemd-inhibit_what() {
23    local _inhibit
24    _inhibit=(shutdown sleep idle handle-power-key handle-suspend-key handle-hibernate-key handle-lid-switch)
25    _values -s : "${_inhibit[@]}"
26}
27
28_arguments \
29    {-h,--help}'[Show this help]' \
30    '--version[Show package version]' \
31    '--what=[Operations to inhibit]:options:_systemd-inhibit_what' \
32    '--who=[A descriptive string who is inhibiting]:who is inhibiting:' \
33    '--why=[A descriptive string why is being inhibited]:reason for the lock:' \
34    '--mode=[One of block or delay]:lock mode:( block delay )' \
35    '--list[List active inhibitors]' \
36    '*:commands:_systemd-inhibit_commands'
37