summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-07-14 19:24:46 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-07-15 10:06:12 -0400
commitc0a67aef31bb9716617ffe150ca8be19c5df203e (patch)
tree51b6df6293f4a069e14747b8d84936e1b1e97ec5
parentae2db4e7e868fb89f5053a962a3a43337ddfd4e0 (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.am19
-rw-r--r--shell-completion/bash/.gitignore1
-rw-r--r--shell-completion/bash/systemctl.in (renamed from shell-completion/bash/systemctl)4
-rw-r--r--shell-completion/zsh/.gitignore1
-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]' \