diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-07-14 19:24:46 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-07-15 10:06:12 -0400 |
commit | c0a67aef31bb9716617ffe150ca8be19c5df203e (patch) | |
tree | 51b6df6293f4a069e14747b8d84936e1b1e97ec5 | |
parent | ae2db4e7e868fb89f5053a962a3a43337ddfd4e0 (diff) |
shell-completion: restore completion for -p
It was broken since systemd was moved out of /bin.
For zsh it was never there.
-rw-r--r-- | Makefile.am | 19 | ||||
-rw-r--r-- | shell-completion/bash/.gitignore | 1 | ||||
-rw-r--r-- | shell-completion/bash/systemctl.in (renamed from shell-completion/bash/systemctl) | 4 | ||||
-rw-r--r-- | shell-completion/zsh/.gitignore | 1 | ||||
-rw-r--r-- | shell-completion/zsh/_systemctl.in (renamed from shell-completion/zsh/_systemctl) | 15 |
5 files changed, 35 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am index fef6d242c7..934b91cd1a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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) diff --git a/shell-completion/bash/.gitignore b/shell-completion/bash/.gitignore new file mode 100644 index 0000000000..016e09d1e7 --- /dev/null +++ b/shell-completion/bash/.gitignore @@ -0,0 +1 @@ +/systemctl diff --git a/shell-completion/bash/systemctl b/shell-completion/bash/systemctl.in index e1c842006e..4beec4e13f 100644 --- a/shell-completion/bash/systemctl +++ b/shell-completion/bash/systemctl.in @@ -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 diff --git a/shell-completion/zsh/.gitignore b/shell-completion/zsh/.gitignore new file mode 100644 index 0000000000..75f13ad6d1 --- /dev/null +++ b/shell-completion/zsh/.gitignore @@ -0,0 +1 @@ +/_systemctl diff --git a/shell-completion/zsh/_systemctl b/shell-completion/zsh/_systemctl.in index b6cf664587..d9b8d1c0e3 100644 --- a/shell-completion/zsh/_systemctl +++ b/shell-completion/zsh/_systemctl.in @@ -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]' \ |