shell-completion: restore completion for -p

It was broken since systemd was moved out of /bin.

For zsh it was never there.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2014-07-14 19:24:46 -04:00
parent ae2db4e7e8
commit c0a67aef31
5 changed files with 35 additions and 5 deletions

View File

@ -382,7 +382,6 @@ systemgenerator_PROGRAMS = \
dist_bashcompletion_DATA = \
shell-completion/bash/busctl \
shell-completion/bash/journalctl \
shell-completion/bash/systemctl \
shell-completion/bash/systemd-analyze \
shell-completion/bash/systemd-cat \
shell-completion/bash/systemd-cgls \
@ -394,8 +393,10 @@ dist_bashcompletion_DATA = \
shell-completion/bash/udevadm \
shell-completion/bash/kernel-install
nodist_bashcompletion_DATA = \
shell-completion/bash/systemctl
dist_zshcompletion_DATA = \
shell-completion/zsh/_systemctl \
shell-completion/zsh/_journalctl \
shell-completion/zsh/_udevadm \
shell-completion/zsh/_kernel-install \
@ -406,6 +407,17 @@ dist_zshcompletion_DATA = \
shell-completion/zsh/_systemd-delta \
shell-completion/zsh/_systemd
nodist_zshcompletion_DATA = \
shell-completion/zsh/_systemctl
EXTRA_DIST += \
shell-completion/bash/systemctl.in \
shell-completion/zsh/_systemctl.in
CLEANFILES += \
$(nodist_bashcompletion_DATA) \
$(nodist_zshcompletion_DATA)
dist_sysctl_DATA = \
sysctl.d/50-default.conf
@ -5264,6 +5276,9 @@ src/core/macros.%: src/core/macros.%.in
src/%.policy.in: src/%.policy.in.in
$(SED_PROCESS)
shell-completion/%: shell-completion/%.in
$(SED_PROCESS)
%.rules: %.rules.in
$(SED_PROCESS)

1
shell-completion/bash/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/systemctl

View File

@ -24,8 +24,8 @@ __systemctl() {
__systemd_properties() {
local mode=$1
{ __systemctl -a $mode show;
systemd --dump-configuration-items; } |
{ __systemctl $mode show --all;
@rootlibexecdir@/systemd --dump-configuration-items; } |
while IFS='=' read -r key value; do
[[ $value ]] && echo "$key"
done

1
shell-completion/zsh/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/_systemctl

View File

@ -301,12 +301,25 @@ _unit_types() {
_values -s , "${_types[@]}"
}
_unit_properties() {
if ( [[ ${+_sys_all_properties} -eq 0 ]] || _cache_invalid SYS_ALL_PROPERTIES ) &&
! _retrieve_cache SYS_ALL_PROPERTIES;
then
_sys_all_properties=( $( {__systemctl show --all;
@rootlibexecdir@/systemd --dump-configuration-items; } | {
while IFS='=' read -r a b; do [ -n "$b" ] && echo "$a"; done
}) )
_store_cache SYS_ALL_PROPRTIES _sys_all_properties
fi
_values -s , "${_sys_all_properties[@]}"
}
_arguments -s \
{-h,--help}'[Show help]' \
'--version[Show package version]' \
{-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' \
{-p+,--property=}'[Show only properties by specific name]:unit property:_unit_properties' \
{-a,--all}'[Show all units/properties, including dead/empty ones]' \
'--reverse[Show reverse dependencies]' \
'--after[Show units ordered after]' \