From 1d4f9fa668e6d7094cfbef2e1826a8d58f5bd202 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 12 Mar 2023 02:05:33 +0100 Subject: [PATCH] Add bash completion for docker-buildx plugin Signed-off-by: CrazyMax --- contrib/completion/bash/docker | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index 644cd275fb0d..02c947172f96 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -5395,6 +5395,23 @@ _docker_wait() { _docker_container_wait } +BUILDX_PLUGIN_PATH=$(docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "buildx"}}{{.Path}}{{end}}{{end}}') + +_docker_buildx() { + local completionCommand="__completeNoDesc" + local resultArray=($BUILDX_PLUGIN_PATH $completionCommand) + for value in "${words[@]:2}"; do + if [ -z "$value" ]; then + resultArray+=( "''" ) + else + resultArray+=( "$value" ) + fi + done + local result=$(eval "${resultArray[*]}" 2> /dev/null | grep -v '^:[0-9]*$') + + COMPREPLY=( $(compgen -W "${result}" -- "${current-}") ) +} + COMPOSE_PLUGIN_PATH=$(docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}') _docker_compose() { @@ -5483,6 +5500,9 @@ _docker() { local known_plugin_commands=() + if [ -f "$BUILDX_PLUGIN_PATH" ] ; then + known_plugin_commands+=("buildx") + fi if [ -f "$COMPOSE_PLUGIN_PATH" ] ; then known_plugin_commands+=("compose") fi