diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index 85959f4e77..273d9b7019 100755 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -227,15 +227,22 @@ __docker_log_drivers() { __docker_log_driver_options() { # see docs/reference/logging/index.md + local fluentd_options="fluentd-address fluentd-tag" + local gelf_options="gelf-address gelf-tag" + local syslog_options="syslog-address syslog-facility syslog-tag" + case $(__docker_value_of_option --log-driver) in + '') + COMPREPLY=( $( compgen -W "$fluentd_options $gelf_options $syslog_options" -S = -- "$cur" ) ) + ;; fluentd) - COMPREPLY=( $( compgen -W "fluentd-address fluentd-tag" -S = -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$fluentd_options" -S = -- "$cur" ) ) ;; gelf) - COMPREPLY=( $( compgen -W "gelf-address gelf-tag" -S = -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$gelf_options" -S = -- "$cur" ) ) ;; syslog) - COMPREPLY=( $( compgen -W "syslog-address syslog-facility syslog-tag" -S = -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$syslog_options" -S = -- "$cur" ) ) ;; *) return @@ -359,7 +366,10 @@ _docker_docker() { COMPREPLY=( $( compgen -W "$boolean_options $main_options_with_args" -- "$cur" ) ) ;; *) - COMPREPLY=( $( compgen -W "${commands[*]} help" -- "$cur" ) ) + local counter="$(__docker_pos_first_nonflag $main_options_with_args_glob)" + if [ $cword -eq $counter ]; then + COMPREPLY=( $( compgen -W "${commands[*]} help" -- "$cur" ) ) + fi ;; esac }