chiark / gitweb /
zsh-completion: Move output modes to autoload
[elogind.git] / shell-completion / zsh / _systemctl
index f78dc19b7e9d7e3e3d155ce4eec3c08e659d152f..560a54815c9a24fe9ad8da71728d445b80877840 100644 (file)
@@ -4,6 +4,7 @@
 {
   local -a _systemctl_cmds
   _systemctl_cmds=(
+    "list-sockets:List sockets"
     "list-units:List units"
     "start:Start (activate) one or more units"
     "stop:Stop (deactivate) one or more units"
@@ -37,7 +38,6 @@
     "is-enabled:Check whether unit files are enabled"
     "list-jobs:List jobs"
     "cancel:Cancel all, one, or more jobs"
-    "dump:Dump server status"
     "snapshot:Create a snapshot"
     "delete:Remove one or more snapshots"
     "show-environment:Dump environment"
@@ -263,7 +263,7 @@ done
 (( $+functions[_systemctl_link] )) || _systemctl_link() { _files }
 
 # no systemctl completion for:
-#    [STANDALONE]='daemon-reexec daemon-reload default dump
+#    [STANDALONE]='daemon-reexec daemon-reload default
 #                  emergency exit halt kexec list-jobs list-units
 #                  list-unit-files poweroff reboot rescue show-environment'
 #         [NAME]='snapshot load'
@@ -288,24 +288,24 @@ _systemctl_caching_policy()
   return 1
 }
 
-_hosts_or_user_at_host() {
-  _alternative \
-    'users-hosts:: _user_at_host' \
-    'hosts:: _hosts'
+_unit_states() {
+    local -a _states
+    _states=(loaded failed active inactive not-found listening running waiting plugged mounted exited dead masked)
+    _values -s , "${_states[@]}"
 }
 
-_outputmodes() {
-    local -a _output_opts
-    _output_opts=(short short-monotonic verbose export json json-pretty json-see cat)
-    _describe -t output 'output mode' _output_opts || compadd "$@"
+_unit_types() {
+    local -a _types
+    _types=(automount device mount path service snapshot socket swap target timer)
+    _values -s , "${_types[@]}"
 }
 
 _arguments -s \
     {-h,--help}'[Show help]' \
     '--version[Show package version]' \
-    {-t,--type=}'[List only units of a particular type]:unit type:(automount device mount path service snapshot socket swap target timer)' \
-    '--state=[Display units in the specified state]:unit state:(loaded failed active inactive not-found listening running waiting plugged mounted exited dead masked)' \
-    \*{-p,--property=}'[Show only properties by specific name]:unit property' \
+    {-t+,--type=}'[List only units of a particular type]:unit type:_unit_types' \
+    '--state=[Display units in the specifyied state]:unit state:_unit_states' \
+    \*{-p+,--property=}'[Show only properties by specific name]:unit property' \
     {-a,--all}'[Show all units/properties, including dead/empty ones]' \
     '--reverse[Show reverse dependencies]' \
     '--after[Show units ordered after]' \
@@ -328,13 +328,13 @@ _arguments -s \
     "--no-reload[When enabling/disabling unit files, don't reload daemon configuration]" \
     '--no-ask-password[Do not ask for system passwords]' \
     '--kill-who=[Who to send signal to]:killwho:(main control all)' \
-    {-s,--signal=}'[Which signal to send]:signal:_signals' \
+    {-s+,--signal=}'[Which signal to send]:signal:_signals' \
     {-f,--force}'[When enabling unit files, override existing symlinks. When shutting down, execute action immediately]' \
     '--root=[Enable unit files in the specified root directory]:directory:_directories' \
     '--runtime[Enable unit files only temporarily until next reboot]' \
-    {-H,--host=}'[Show information for remote host]:userathost:_hosts_or_user_at_host' \
+    {-H+,--host=}'[Show information for remote host]:userathost:_sd_hosts_or_user_at_host' \
     {-P,--privileged}'[Acquire privileges before execution]' \
-    {-n,--lines=}'[Journal entries to show]:number of entries' \
-    {-o,--output=}'[Change journal output mode]:modes:_outputmodes' \
+    {-n+,--lines=}'[Journal entries to show]:number of entries' \
+    {-o+,--output=}'[Change journal output mode]:modes:_sd_outputmodes' \
     '--plain[When used with list-dependencies, print output as a list]' \
     '*::systemctl command:_systemctl_command'