]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
bash-completion: also suggest template unit files
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 28 May 2018 05:57:00 +0000 (14:57 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 28 May 2018 09:15:00 +0000 (18:15 +0900)
Fixes #9041.

shell-completion/bash/systemctl.in

index 4a0ceb879a2df2363dafdb7789c979438603309a..8bf83c8aeae62a70e02c9a8d2b26e8c7c0ea992d 100644 (file)
@@ -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