summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-07-26 20:11:58 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-07-26 20:15:38 -0400
commitc6a373a26348544d944b08bf0c5dea4f72f6980b (patch)
tree94894c2fc21929c6ca8d0e68372b8e5de7169908
parent8f077bf94e129fa1b6f0159e3140c4326f1066cf (diff)
bash-completion: use list-unit-files to get "all" units
I think that it is better to return good results slightly more slowly, than partial quickly. Also reading from disk seems fast enough. Even the delay on first try with completely cold cache is acceptable. This is just for bash, 'cause zsh was already doing this. https://bugzilla.redhat.com/show_bug.cgi?id=790768
-rw-r--r--shell-completion/bash/systemctl.in6
1 files changed, 4 insertions, 2 deletions
diff --git a/shell-completion/bash/systemctl.in b/shell-completion/bash/systemctl.in
index c5950cc752..69ef04b017 100644
--- a/shell-completion/bash/systemctl.in
+++ b/shell-completion/bash/systemctl.in
@@ -51,11 +51,13 @@ __filter_units_by_property () {
done
}
-__get_all_units () { __systemctl $1 list-units --all \
+__get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \
| { while read -r a b; do echo " $a"; done; }; }
__get_active_units () { __systemctl $1 list-units \
| { while read -r a b; do echo " $a"; done; }; }
-__get_startable_units () { __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap \
+__get_startable_units () { {
+ __systemctl $1 list-units --all -t service,timer,socket,mount,automount,path,snapshot,swap
+ __systemctl $1 list-unit-files -t service,timer,socket,mount,automount,path,snapshot,swap; } \
| { while read -r a b c d; do [[ $c == "inactive" || $c == "failed" ]] && echo " $a"; done; }; }
__get_failed_units () { __systemctl $1 list-units \
| { while read -r a b c d; do [[ $c == "failed" ]] && echo " $a"; done; }; }