X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=shell-completion%2Fzsh%2F_systemctl;h=b6cf66458726cdaa1fcf534cd2b0da13999d0bd1;hp=f78dc19b7e9d7e3e3d155ce4eec3c08e659d152f;hb=538b08707ab7d34fac5b8c2753d3bf9ac12c2ebf;hpb=631c922c68ec1fc5c34077c1d95b76eff38e1608 diff --git a/shell-completion/zsh/_systemctl b/shell-completion/zsh/_systemctl index f78dc19b7..b6cf66458 100644 --- a/shell-completion/zsh/_systemctl +++ b/shell-completion/zsh/_systemctl @@ -4,6 +4,8 @@ { local -a _systemctl_cmds _systemctl_cmds=( + "list-sockets:List sockets" + "list-timers:List timers" "list-units:List units" "start:Start (activate) one or more units" "stop:Stop (deactivate) one or more units" @@ -22,8 +24,8 @@ "is-failed:Check whether units are failed" "status:Show runtime status of one or more units" "show:Show properties of one or more units/jobs or the manager" + "cat:Show the source unit files and drop-ins" "reset-failed:Reset failed state for all, one, or more units" - "load:Load one or more units" "list-unit-files:List installed unit files" "enable:Enable one or more unit files" "disable:Disable one or more unit files" @@ -37,7 +39,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" @@ -145,7 +146,7 @@ _systemctl_disabled_units(){_sys_disabled_units=($(__systemctl list-unit-files _systemctl_masked_units() {_sys_masked_units=( $(__systemctl list-unit-files | { while read a b; do [[ $b == "masked" ]] && echo " $a"; done; }) )} # Completion functions for ALL_UNITS -for fun in is-active is-failed is-enabled status show mask preset help list-dependencies ; do +for fun in is-active is-failed is-enabled status show cat mask preset help list-dependencies ; do (( $+functions[_systemctl_$fun] )) || _systemctl_$fun() { _systemctl_really_all_units @@ -263,10 +264,10 @@ 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' +# [NAME]='snapshot' _systemctl_caching_policy() { @@ -288,24 +289,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 +329,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=}'[Operate on 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'