From c6a373a26348544d944b08bf0c5dea4f72f6980b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 26 Jul 2014 20:11:58 -0400 Subject: [PATCH 1/1] 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 --- shell-completion/bash/systemctl.in | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/shell-completion/bash/systemctl.in b/shell-completion/bash/systemctl.in index c5950cc75..69ef04b01 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; }; } -- 2.30.2