zsh-completion: a more style/tag aware _systemctl
authorEric Cook <llua@gmx.com>
Fri, 29 May 2015 14:40:11 +0000 (10:40 -0400)
committerHarald Hoyer <harald@redhat.com>
Fri, 29 May 2015 15:04:09 +0000 (17:04 +0200)
commitd34b7c117bd016cb9ef2c36d474c9a917924abda
tree4466a94a6f394b7d63a5f258d98e0c50fd144991
parent2fe9e87a2475d5c2f5e2bb1a7e711c59fd0b2c6d
zsh-completion: a more style/tag aware _systemctl

using _wanted instead of calling compadd directly. this allows the user to customize
possible matches.

An example being, grouping units by type:
autoload -Uz compinit; compinit
zstyle ':completion:*' menu select
zstyle ':completion:*' group-name ''
zstyle ':completion:*' format 'Completing %d'
zstyle -e ':completion:*:*:systemctl-(((re|)en|dis)able|(*re|)start|reload*):*' \
tag-order 'local type; for type in service template target socket;
    reply+=( systemd-units:-${type}:${type} ); reply=( "$reply systemd-units:-misc:misc" )'
zstyle ':completion:*:systemd-units-template' ignored-patterns '^*@'
zstyle ':completion:*:systemd-units-target' ignored-patterns '^*.target'
zstyle ':completion:*:systemd-units-socket' ignored-patterns '^*.socket'
zstyle ':completion:*:systemd-units-service' ignored-patterns '^*.service'
zstyle ':completion:*:systemd-units-misc' ignored-patterns '*(@|.(service|socket|target))'

also, <poke> http://lists.freedesktop.org/archives/systemd-devel/2015-May/032012.html
shell-completion/zsh/_systemctl.in