From aea447c9f8d85b056d803dffae351a35b1158585 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 28 May 2018 14:57:00 +0900 Subject: bash-completion: also suggest template unit files Fixes #9041. --- shell-completion/bash/systemctl.in | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'shell-completion') diff --git a/shell-completion/bash/systemctl.in b/shell-completion/bash/systemctl.in index 4a0ceb879a..8bf83c8aea 100644 --- a/shell-completion/bash/systemctl.in +++ b/shell-completion/bash/systemctl.in @@ -62,6 +62,8 @@ __filter_units_by_properties () { } __get_all_units () { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ + | { while read -r a b; do echo " $a"; done; }; } +__get_non_template_units() { { __systemctl $1 list-unit-files; __systemctl $1 list-units --all; } \ | { while read -r a b; do [[ $a =~ @\. ]] || echo " $a"; done; }; } __get_template_names () { __systemctl $1 list-unit-files \ | { while read -r a b; do [[ $a =~ @\. ]] && echo " ${a%%@.*}@"; done; }; } @@ -172,7 +174,8 @@ _systemctl () { fi local -A VERBS=( - [ALL_UNITS]='is-active is-failed is-enabled status show cat mask preset help list-dependencies edit set-property revert' + [ALL_UNITS]='cat mask' + [NONTEMPLATE_UNITS]='is-active is-failed is-enabled status show preset help list-dependencies edit set-property revert' [ENABLED_UNITS]='disable' [DISABLED_UNITS]='enable' [REENABLABLE_UNITS]='reenable' @@ -212,6 +215,10 @@ _systemctl () { comps=$( __get_all_units $mode ) compopt -o filenames + elif __contains_word "$verb" ${VERBS[NONTEMPLATE_UNITS]}; then + comps=$( __get_non_template_units $mode ) + compopt -o filenames + elif __contains_word "$verb" ${VERBS[ENABLED_UNITS]}; then comps=$( __get_enabled_units $mode ) compopt -o filenames -- cgit v1.2.2