[systemd-devel] [PATCH] shell-completion/bash: add add-wants and add-requires

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Sat Oct 18 07:42:49 PDT 2014


On Thu, Oct 16, 2014 at 09:41:02AM +0200, Lukas Nykryn wrote:
> ---
>  shell-completion/bash/systemctl.in | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/shell-completion/bash/systemctl.in b/shell-completion/bash/systemctl.in
> index afa80da..30ba668 100644
> --- a/shell-completion/bash/systemctl.in
> +++ b/shell-completion/bash/systemctl.in
> @@ -74,6 +74,7 @@ __get_disabled_units () { __systemctl $1 list-unit-files  \
>          | { while read -r a b c  ; do [[ $b == "disabled" ]] && echo " $a"; done; }; }
>  __get_masked_units   () { __systemctl $1 list-unit-files  \
>          | { while read -r a b c  ; do [[ $b == "masked"   ]] && echo " $a"; done; }; }
> +__get_all_unit_files () { { __systemctl $1 list-unit-files; } | { while read -r a b; do echo " $a"; done; }; }
>  
>  _systemctl () {
>          local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
> @@ -139,6 +140,7 @@ _systemctl () {
>           [ISOLATABLE_UNITS]='isolate'
>           [RELOADABLE_UNITS]='reload condreload reload-or-try-restart force-reload'
>          [RESTARTABLE_UNITS]='restart reload-or-restart'
> +         [TARGET_AND_UNITS]='add-wants add-requires'
>               [MASKED_UNITS]='unmask'
>                       [JOBS]='cancel'
>                  [SNAPSHOTS]='delete'
> @@ -217,6 +219,16 @@ _systemctl () {
>                  comps=$( __get_masked_units $mode )
>                  compopt -o filenames
>  
> +        elif __contains_word "$verb" ${VERBS[TARGET_AND_UNITS]}; then
> +                if __contains_word "$prev" ${VERBS[TARGET_AND_UNITS]} \
> +                || __contains_word "$prev" ${OPTS[STANDALONE]}; then
> +                        comps=$( __systemctl $mode list-unit-files --type target --full --all \

__systemctl includes --full already.
> +                        | { while read -r a b; do echo " $a"; done; } )
> +                else
> +                        comps=$( __get_all_unit_files $mode )
> +                fi
> +                compopt -o filenames
> +
>          elif __contains_word "$verb" ${VERBS[STANDALONE]} ${VERBS[NAME]}; then
>                  comps=''

Please push. What about zsh?

Zbyszek


More information about the systemd-devel mailing list