diff options
author | William Giokas <1007380@gmail.com> | 2013-08-14 22:09:14 -0500 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2013-08-15 11:29:08 -0400 |
commit | 298b9e23a6e21161a7fe486aab94944a58d5e90c (patch) | |
tree | f6a92e5e86445f2c91241fc5fee02da93d3ceb3a | |
parent | 1acbb95c2b58373909d1e7a09a2eed0f6595cf6e (diff) |
zsh_completion: Allow specifying multiple arguments
Some of the options in systemd can take multiple arguments, such as
systemctl's --type option. Previously, you would only be able to
complete a single type after the -t, but now zsh will continue to
complete the types, separating them by commas.
systemd-inhibit's --what command has colon (:), and that has been taken
into account.
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | shell-completion/zsh/_systemctl | 16 | ||||
-rw-r--r-- | shell-completion/zsh/_systemd | 11 | ||||
-rw-r--r-- | shell-completion/zsh/_systemd-delta | 15 | ||||
-rw-r--r-- | shell-completion/zsh/_systemd-inhibit | 8 |
5 files changed, 38 insertions, 13 deletions
diff --git a/Makefile.am b/Makefile.am index 641e92fd79..5d3599386f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -351,6 +351,7 @@ dist_zshcompletion_DATA = \ shell-completion/zsh/_systemd-nspawn \ shell-completion/zsh/_systemd-analyze \ shell-completion/zsh/_sd_hosts_or_user_at_host \ + shell-completion/zsh/_systemd-delta \ shell-completion/zsh/_systemd dist_sysctl_DATA = \ diff --git a/shell-completion/zsh/_systemctl b/shell-completion/zsh/_systemctl index dbe168a609..cc2df3c828 100644 --- a/shell-completion/zsh/_systemctl +++ b/shell-completion/zsh/_systemctl @@ -294,11 +294,23 @@ _outputmodes() { _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]' \ diff --git a/shell-completion/zsh/_systemd b/shell-completion/zsh/_systemd index 7aab52d5b6..fe39de8c38 100644 --- a/shell-completion/zsh/_systemd +++ b/shell-completion/zsh/_systemd @@ -1,4 +1,4 @@ -#compdef systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-delta systemd-detect-virt systemd-machine-id-setup systemd-notify systemd-tty-ask-password-agent +#compdef systemd-cat systemd-ask-password systemd-cgls systemd-cgtop systemd-detect-virt systemd-machine-id-setup systemd-notify systemd-tty-ask-password-agent _ctls() { @@ -45,15 +45,6 @@ _ctls() {-b,--batch}'[Run in batch mode, accepting no input]' \ '--depth=[Maximum traversal depth]' ;; - systemd-delta) - _arguments \ - {-h,--help}'[Show this help]' \ - '--version[Show package version]' \ - '--no-pager[Do not pipe output into a pager]' \ - '--diff=[Show a diff when overridden files differ]:boolean:(1 0)' \ - {-t,--type=}'[Only display a selected set of override types]:types:(masked equivalent redirected overridden unchanged)' \ - ':SUFFIX:(tmpfiles.d sysctl.d systemd/system)' - ;; systemd-detect-virt) _arguments \ {-h,--help}'[Show this help]' \ diff --git a/shell-completion/zsh/_systemd-delta b/shell-completion/zsh/_systemd-delta new file mode 100644 index 0000000000..6abb6fc217 --- /dev/null +++ b/shell-completion/zsh/_systemd-delta @@ -0,0 +1,15 @@ +#compdef systemd-delta + +_delta_type() { + local -a _delta_types + _delta_types=(masked equivalent redirected overridden unchanged) + _values -s , "${_delta_types[@]}" +} + +_arguments \ + {-h,--help}'[Show this help]' \ + '--version[Show package version]' \ + '--no-pager[Do not pipe output into a pager]' \ + '--diff=[Show a diff when overridden files differ]:boolean:(1 0)' \ + {-t,--type=}'[Only display a selected set of override types]:types:_delta_type' \ + ':SUFFIX:(tmpfiles.d sysctl.d systemd/system)' diff --git a/shell-completion/zsh/_systemd-inhibit b/shell-completion/zsh/_systemd-inhibit index 7953455d40..1ecb6dc7ee 100644 --- a/shell-completion/zsh/_systemd-inhibit +++ b/shell-completion/zsh/_systemd-inhibit @@ -16,10 +16,16 @@ _systemd_inhibit_command(){ 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:(shutdown sleep idle handle-power-key handle-suspend-key handle-hibernate-key handle-lid-switch)' \ + '--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]' \ |