Skip to content

Commit

Permalink
Merge pull request #2906 from stoffus/added-docker-context-to-zsh-com…
Browse files Browse the repository at this point in the history
…pletion

Added docker context to zsh completion
  • Loading branch information
thaJeztah authored Jan 11, 2021
2 parents e31e005 + b04241d commit 9a3fdc1
Showing 1 changed file with 93 additions and 0 deletions.
93 changes: 93 additions & 0 deletions contrib/completion/zsh/_docker
Original file line number Diff line number Diff line change
Expand Up @@ -2544,6 +2544,82 @@ __docker_volume_subcommand() {

# EO volume

# BO context

__docker_complete_contexts() {
[[ $PREFIX = -* ]] && return 1
integer ret=1
declare -a contexts

contexts=(${(f)${:-"$(_call_program commands docker $docker_options context ls -q)"$'\n'}})

_describe -t context-list "context" contexts && ret=0
return ret
}

__docker_context_commands() {
local -a _docker_context_subcommands
_docker_context_subcommands=(
"create:Create new context"
"inspect:Display detailed information on one or more contexts"
"list:List available contexts"
"rm:Remove one or more contexts"
"show:Print the current context"
"update:Update a context"
"use:Set the default context"
)
_describe -t docker-context-commands "docker context command" _docker_context_subcommands
}

__docker_context_subcommand() {
local -a _command_args opts_help
local expl help="--help"
integer ret=1

opts_help=("(: -)--help[Print usage]")

case "$words[1]" in
(create)
_arguments $(__docker_arguments) \
$opts_help \
"($help)--default-stack-orchestrator=[Default orchestrator for stack operations to use with this context]:default-stack-orchestrator:(swarm kubernetes all)" \
"($help)--description=[Description of the context]:description:" \
"($help)--docker=[Set the docker endpoint]:docker:" \
"($help)--kubernetes=[Set the kubernetes endpoint]:kubernetes:" \
"($help)--from=[Create context from a named context]:from:__docker_complete_contexts" \
"($help -):name: " && ret=0
;;
(use)
_arguments $(__docker_arguments) \
$opts_help \
"($help -)1:context:__docker_complete_contexts" && ret=0
;;
(inspect)
_arguments $(__docker_arguments) \
$opts_help \
"($help -)1:context:__docker_complete_contexts" && ret=0
;;
(rm)
_arguments $(__docker_arguments) \
$opts_help \
"($help -)1:context:__docker_complete_contexts" && ret=0
;;
(update)
_arguments $(__docker_arguments) \
$opts_help \
"($help)--default-stack-orchestrator=[Default orchestrator for stack operations to use with this context]:default-stack-orchestrator:(swarm kubernetes all)" \
"($help)--description=[Description of the context]:description:" \
"($help)--docker=[Set the docker endpoint]:docker:" \
"($help)--kubernetes=[Set the kubernetes endpoint]:kubernetes:" \
"($help -):name:" && ret=0
;;
esac

return ret
}

# EO context

__docker_caching_policy() {
oldp=( "$1"(Nmh+1) ) # 1 hour
(( $#oldp ))
Expand Down Expand Up @@ -2631,6 +2707,23 @@ __docker_subcommand() {
;;
esac
;;
(context)
local curcontext="$curcontext" state
_arguments $(__docker_arguments) \
$opts_help \
"($help -): :->command" \
"($help -)*:: :->option-or-argument" && ret=0

case $state in
(command)
__docker_context_commands && ret=0
;;
(option-or-argument)
curcontext=${curcontext%:*:*}:docker-${words[-1]}:
__docker_context_subcommand && ret=0
;;
esac
;;
(daemon)
_arguments $(__docker_arguments) \
$opts_help \
Expand Down

0 comments on commit 9a3fdc1

Please sign in to comment.