chiark / gitweb /
zsh_completion: Allow specifying multiple arguments
[elogind.git] / shell-completion / zsh / _systemctl
index f78dc19b7e9d7e3e3d155ce4eec3c08e659d152f..cc2df3c828626809c1a9cd622c7a27ce595e11b8 100644 (file)
@@ -288,23 +288,29 @@ _systemctl_caching_policy()
   return 1
 }
 
-_hosts_or_user_at_host() {
-  _alternative \
-    'users-hosts:: _user_at_host' \
-    'hosts:: _hosts'
-}
-
 _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_states() {
+    local -a _states
+    _states=(loaded failed active inactive not-found listening running waiting plugged mounted exited dead masked)
+    _values -s , "${_states[@]}"
+}
+
+_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)' \
+    {-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]' \
@@ -332,7 +338,7 @@ _arguments -s \
     {-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' \