[systemd-devel] [PATCH] Updates in bash autocompletions

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Wed Jan 28 21:44:45 PST 2015


On Sat, Jan 10, 2015 at 02:08:21AM +0100, Carlos Morata Castillo wrote:
> Hi,
> 
> I did ./check-undocumented.sh -b (my script just submitted) and checked
> the results.
> 
> 
> Cheers.

> 
> ---
>  shell-completion/bash/coredumpctl     |  2 +-
>  shell-completion/bash/hostnamectl     |  2 +-
>  shell-completion/bash/journalctl      | 11 ++++++-----
>  shell-completion/bash/localectl       |  2 +-
>  shell-completion/bash/loginctl        |  7 ++++---
>  shell-completion/bash/systemd-analyze |  2 +-
>  shell-completion/bash/systemd-cgtop   |  3 ++-
>  shell-completion/bash/timedatectl     |  2 +-
>  8 files changed, 17 insertions(+), 14 deletions(-)
> 
> diff --git a/shell-completion/bash/coredumpctl b/shell-completion/bash/coredumpctl
> index e23152d..6091677 100644
> --- a/shell-completion/bash/coredumpctl
> +++ b/shell-completion/bash/coredumpctl
> @@ -37,7 +37,7 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
>  _coredumpctl() {
>          local i verb comps
>          local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
> -        local OPTS='-h --help --version --no-pager --no-legend -o --output -F --field'
> +        local OPTS='-h --help --version --no-pager --no-legend -o --output -F --field -1'
>  
>          local -A VERBS=(
>              [LIST]='list'
> diff --git a/shell-completion/bash/hostnamectl b/shell-completion/bash/hostnamectl
> index 7a0850d..9ad52e0 100644
> --- a/shell-completion/bash/hostnamectl
> +++ b/shell-completion/bash/hostnamectl
> @@ -28,7 +28,7 @@ _hostnamectl() {
>          local i verb comps
>          local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
>          local OPTS='-h --help --version --transient --static --pretty
> -                    --no-ask-password -H --host'
> +                    --no-ask-password -H --host --machine'
Hm, this needs more work, since --machine should complete to an arg.

>  
>          if [[ $cur = -* ]]; then
>                  COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
> diff --git a/shell-completion/bash/journalctl b/shell-completion/bash/journalctl
> index 14dcd22..57b4591 100644
> --- a/shell-completion/bash/journalctl
> +++ b/shell-completion/bash/journalctl
> @@ -44,14 +44,15 @@ _journalctl() {
>                                --disk-usage -f --follow --header
>                                -h --help -l --local --new-id128 -m --merge --no-pager
>                                --no-tail -q --quiet --setup-keys --this-boot --verify
> -                              --version --list-catalog --update-catalog --list-boots'
> +                              --version --list-catalog --update-catalog --list-boots --show-cursor
> +                              --dmesg -k --pager-end -e -r --reverse --utc -x --catalog --no-full --force --dump-catalog --flush'
>                         [ARG]='-b --boot --this-boot -D --directory --file -F --field
> -                              -o --output -u --unit --user-unit -p --priority'
> -                [ARGUNKNOWN]='-c --cursor --interval -n --lines --since --until
> -                              --verify-key'
> +                              -o --output -u --unit --user-unit -p --priority --machine 
> +                -c --cursor --interval -n --lines --since --until --after-cursor 
> +                --verify-key --identifier --root'
The split between ARG and ARGUNKNOWN was there for a reason. For the
latter we cannot provide completions. This is a kind of internal
documentation, please do not remove this.

Also, you patch adds whitespace at the end of lines here.
If you run ./autogen.sh, it'll install a git hook which will tell you about
such issues.

I applied the patch with some small tweaks.

>          )
>  
> -        if __contains_word "$prev" ${OPTS[ARG]} ${OPTS[ARGUNKNOWN]}; then
> +        if __contains_word "$prev" ${OPTS[ARG]}; then
>                  case $prev in
>                          --boot|--this-boot|-b)
>                                  comps=$(journalctl -F '_BOOT_ID' 2>/dev/null)
> diff --git a/shell-completion/bash/localectl b/shell-completion/bash/localectl
> index c9e22af..e0c06a7 100644
> --- a/shell-completion/bash/localectl
> +++ b/shell-completion/bash/localectl
> @@ -34,7 +34,7 @@ _localectl() {
>          local i verb comps locale_vals
>          local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
>          local OPTS='-h --help --version --no-convert --no-pager --no-ask-password
> -                    -H --host'
> +                    -H --host --machine'
Again, --machine needs arg completiion.

>  
>          if __contains_word "$prev" $OPTS; then
>                  case $prev in
> diff --git a/shell-completion/bash/loginctl b/shell-completion/bash/loginctl
> index e7adb93..ea277c6 100644
> --- a/shell-completion/bash/loginctl
> +++ b/shell-completion/bash/loginctl
> @@ -33,9 +33,10 @@ _loginctl () {
>          local i verb comps
>  
>          local -A OPTS=(
> -               [STANDALONE]='--all -a --help -h --no-pager --privileged -P --version'
> -                      [ARG]='--host -H --kill-who --property -p --signal -s'
> -        )
> +               [STANDALONE]='--all -a --help -h --no-pager --privileged -P --version 
> +               --no-legend --no-ask-password -l --full'
> +                      [ARG]='--host -H --kill-who --property -p --signal -s --machine'
> +                      )
>  
>          if __contains_word "$prev" ${OPTS[ARG]}; then
>                  case $prev in
> diff --git a/shell-completion/bash/systemd-analyze b/shell-completion/bash/systemd-analyze
> index 77d1b54..0094702 100644
> --- a/shell-completion/bash/systemd-analyze
> +++ b/shell-completion/bash/systemd-analyze
> @@ -36,7 +36,7 @@ _systemd_analyze() {
>  
>          local -A OPTS=(
>                 [STANDALONE]='--help --version --system --user --from-pattern --to-pattern --order --require --no-pager'
> -                      [ARG]='-H --host -M --machine'
> +                      [ARG]='-H --host -M --machine --fuzz --man'
>          )
>  
>          local -A VERBS=(
> diff --git a/shell-completion/bash/systemd-cgtop b/shell-completion/bash/systemd-cgtop
> index d7ea42d..5046499 100644
> --- a/shell-completion/bash/systemd-cgtop
> +++ b/shell-completion/bash/systemd-cgtop
> @@ -30,7 +30,8 @@ _systemd_cgtop() {
>  
>          local -A OPTS=(
>                 [STANDALONE]='-h --help --version -p -t -c -m -i -b --batch -n --iterations -d --delay'
> -        )
> +               [ARG]='--cpu --depth'
> +               )
>  
>          _init_completion || return
>  
> diff --git a/shell-completion/bash/timedatectl b/shell-completion/bash/timedatectl
> index 1a0acc6..a57fbd2 100644
> --- a/shell-completion/bash/timedatectl
> +++ b/shell-completion/bash/timedatectl
> @@ -28,7 +28,7 @@ _timedatectl() {
>          local i verb comps
>          local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
>          local OPTS='-h --help --version --adjust-system-clock --no-pager
> -                    --no-ask-password -H --host'
> +                    --no-ask-password -H --host --machine'
>  
>          if __contains_word "$prev" $OPTS; then
>                  case $prev in
> -- 

Zbyszek


More information about the systemd-devel mailing list