chiark / gitweb /
Prep v221: Update and clean up build system to sync with upstream
[elogind.git] / shell-completion / zsh / _elogind-inhibit
diff --git a/shell-completion/zsh/_elogind-inhibit b/shell-completion/zsh/_elogind-inhibit
new file mode 100644 (file)
index 0000000..1ecb6dc
--- /dev/null
@@ -0,0 +1,33 @@
+#compdef systemd-inhibit
+
+_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]' \
+    '--why=[A descriptive string why is being inhibited]' \
+    '--mode=[One of block or delay]' \
+    '--list[List active inhibitors]' \
+    '*:commands:_systemd_inhibit_command'