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
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2014-07-26 20:11:58 -04:00
parent 8f077bf94e
commit c6a373a263
1 changed files with 4 additions and 2 deletions

View File

@ -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; }; }