Skip to content

Commit

Permalink
Merge pull request #3752 from thaJeztah/20.10_backport_completion
Browse files Browse the repository at this point in the history
[20.10 backport] Add completion for docker-compose plugin
  • Loading branch information
thaJeztah committed Aug 27, 2022
2 parents 2484f7e + c2dcaec commit bd04f19
Showing 1 changed file with 24 additions and 1 deletion.
25 changes: 24 additions & 1 deletion contrib/completion/bash/docker
Expand Up @@ -5485,6 +5485,23 @@ _docker_wait() {
_docker_container_wait
}

COMPOSE_PLUGIN_PATH=$(docker info --format '{{range .ClientInfo.Plugins}}{{if eq .Name "compose"}}{{.Path}}{{end}}{{end}}')

_docker_compose() {
local completionCommand="__completeNoDesc"
local resultArray=($COMPOSE_PLUGIN_PATH $completionCommand compose)
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") )
}

_docker() {
local previous_extglob_setting=$(shopt -p extglob)
shopt -s extglob
Expand Down Expand Up @@ -5554,11 +5571,17 @@ _docker() {
wait
)

local known_plugin_commands=()

if [ -f "$COMPOSE_PLUGIN_PATH" ] ; then
known_plugin_commands+=("compose")
fi

local experimental_server_commands=(
checkpoint
)

local commands=(${management_commands[*]} ${top_level_commands[*]})
local commands=(${management_commands[*]} ${top_level_commands[*]} ${known_plugin_commands[*]})
[ -z "$DOCKER_HIDE_LEGACY_COMMANDS" ] && commands+=(${legacy_commands[*]})

# These options are valid as global options for all client commands
Expand Down

0 comments on commit bd04f19

Please sign in to comment.