]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
zsh: add service-log-{level,target} completions for systemctl
authorRonan Pigott <ronan@rjp.ie>
Sun, 7 May 2023 21:08:29 +0000 (14:08 -0700)
committerLuca Boccassi <luca.boccassi@gmail.com>
Mon, 8 May 2023 00:08:36 +0000 (01:08 +0100)
shell-completion/zsh/_systemctl.in

index 0f97c884a092c79d18fc5ba4de7e94d93d3cb0b4..782b643841fdfcf3d106e1e62e3eff877dc81909 100644 (file)
@@ -29,6 +29,8 @@
         "show:Show properties of one or more units/jobs or the manager"
         "cat:Show the source unit files and drop-ins"
         "set-property:Sets one or more properties of a unit"
+        "service-log-level:Get or set the logging threshold for service"
+        "service-log-target:Get or set the logging target for service"
         "help:Show documentation for specified units"
         "reset-failed:Reset failed state for all, one, or more units"
         "list-dependencies:Show unit dependency tree"
@@ -301,6 +303,30 @@ for fun in stop kill try-restart condrestart ; do
     }
 done
 
+(( $+functions[_systemctl_service-log-level] )) ||
+    _systemctl_service-log-level() {
+        local -a log_levels=( emerg alert crit err warning notice info debug )
+        local _sys_active_units; _systemctl_active_units
+        if (( CURRENT == 2 )); then
+            _wanted systemd-units expl 'active unit' \
+                compadd "$@" -a - _sys_active_units || _message "no units found"
+        else
+            compadd "$@" -a - log_levels
+        fi
+}
+
+(( $+functions[_systemctl_service-log-target] )) ||
+    _systemctl_service-log-target() {
+        local -a log_targets=( console kmsg journal syslog null auto )
+        local _sys_active_units; _systemctl_active_units
+        if (( CURRENT == 2 )); then
+            _wanted systemd-units expl 'active unit' \
+                compadd "$@" -a - _sys_active_units || _message "no units found"
+        else
+            compadd "$@" -a - log_targets
+        fi
+}
+
 # Completion functions for ISOLATABLE_UNITS
 (( $+functions[_systemctl_isolate] )) || _systemctl_isolate()
 {