diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-07-26 20:11:58 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-07-26 20:15:38 -0400 |
commit | c6a373a26348544d944b08bf0c5dea4f72f6980b (patch) | |
tree | 94894c2fc21929c6ca8d0e68372b8e5de7169908 | |
parent | 8f077bf94e129fa1b6f0159e3140c4326f1066cf (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.in | 6 |
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; }; } |