From 431e9cb27c26be44ea116517635a31745c3f19bc Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 12:30:14 +0200 Subject: [PATCH 01/26] Rename containers complete function in zsh completion Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 80 +++++++++++++++++----------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 1e1e211de9..ac1f7fa3f3 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -113,27 +113,27 @@ __docker_get_containers() { return ret } -__docker_stoppedcontainers() { +__docker_complete_stopped_containers() { [[ $PREFIX = -* ]] && return 1 __docker_get_containers stopped all "$@" } -__docker_runningcontainers() { +__docker_complete_running_containers() { [[ $PREFIX = -* ]] && return 1 __docker_get_containers running all "$@" } -__docker_containers() { +__docker_complete_containers() { [[ $PREFIX = -* ]] && return 1 __docker_get_containers all all "$@" } -__docker_containers_ids() { +__docker_complete_containers_ids() { [[ $PREFIX = -* ]] && return 1 __docker_get_containers all ids "$@" } -__docker_containers_names() { +__docker_complete_containers_names() { [[ $PREFIX = -* ]] && return 1 __docker_get_containers all names "$@" } @@ -295,7 +295,7 @@ __docker_complete_pid() { if compset -P '*:'; then case "${${words[-1]%:*}#*=}" in (container) - __docker_runningcontainers && ret=0 + __docker_complete_running_containers && ret=0 ;; *) _message 'value' && ret=0 @@ -330,20 +330,20 @@ __docker_complete_ps_filters() { __docker_images && ret=0 ;; (before|since) - __docker_containers && ret=0 + __docker_complete_containers && ret=0 ;; (health) health_opts=('healthy' 'none' 'starting' 'unhealthy') _describe -t health-filter-opts "health filter options" health_opts && ret=0 ;; (id) - __docker_containers_ids && ret=0 + __docker_complete_containers_ids && ret=0 ;; (is-task) _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 ;; (name) - __docker_containers_names && ret=0 + __docker_complete_containers_names && ret=0 ;; (network) __docker_networks && ret=0 @@ -428,7 +428,7 @@ __docker_complete_events_filter() { if compset -P '*='; then case "${${words[-1]%=*}#*=}" in (container) - __docker_containers && ret=0 + __docker_complete_containers && ret=0 ;; (daemon) emulate -L zsh @@ -595,14 +595,14 @@ __docker_network_subcommand() { "($help)*--link=[Add a link to another container]:link:->link" \ "($help)*--link-local-ip=[Add a link-local address for the container]:IPv4/IPv6: " \ "($help -)1:network:__docker_networks" \ - "($help -)2:containers:__docker_containers" && ret=0 + "($help -)2:containers:__docker_complete_containers" && ret=0 case $state in (link) if compset -P "*:"; then _wanted alias expl "Alias" compadd -E "" && ret=0 else - __docker_runningcontainers -qS ":" && ret=0 + __docker_complete_running_containers -qS ":" && ret=0 fi ;; esac @@ -627,7 +627,7 @@ __docker_network_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ "($help -)1:network:__docker_networks" \ - "($help -)2:containers:__docker_containers" && ret=0 + "($help -)2:containers:__docker_complete_containers" && ret=0 ;; (inspect) _arguments $(__docker_arguments) \ @@ -1521,7 +1521,7 @@ __docker_subcommand() { $opts_attach_exec_run_start \ "($help)--no-stdin[Do not attach stdin]" \ "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ - "($help -):containers:__docker_runningcontainers" && ret=0 + "($help -):containers:__docker_complete_running_containers" && ret=0 ;; (build) _arguments $(__docker_arguments) \ @@ -1547,7 +1547,7 @@ __docker_subcommand() { "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ "($help -m --message)"{-m=,--message=}"[Commit message]:message: " \ "($help -p --pause)"{-p,--pause}"[Pause container during commit]" \ - "($help -):container:__docker_containers" \ + "($help -):container:__docker_complete_containers" \ "($help -): :__docker_repositories_with_tags" && ret=0 ;; (cp) @@ -1561,7 +1561,7 @@ __docker_subcommand() { if compset -P "*:"; then _files && ret=0 else - __docker_containers -qS ":" && ret=0 + __docker_complete_containers -qS ":" && ret=0 fi ;; esac @@ -1582,7 +1582,7 @@ __docker_subcommand() { if compset -P "*:"; then _wanted alias expl "Alias" compadd -E "" && ret=0 else - __docker_runningcontainers -qS ":" && ret=0 + __docker_complete_running_containers -qS ":" && ret=0 fi ;; esac @@ -1680,7 +1680,7 @@ __docker_subcommand() { (diff) _arguments $(__docker_arguments) \ $opts_help \ - "($help -)*:containers:__docker_containers" && ret=0 + "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (events) _arguments $(__docker_arguments) \ @@ -1701,7 +1701,7 @@ __docker_subcommand() { "($help)--privileged[Give extended Linux capabilities to the command]" \ "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" \ "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" \ - "($help -):containers:__docker_runningcontainers" \ + "($help -):containers:__docker_complete_running_containers" \ "($help -)*::command:->anycommand" && ret=0 case $state in @@ -1716,7 +1716,7 @@ __docker_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ "($help -o --output)"{-o=,--output=}"[Write to a file, instead of stdout]:output file:_files" \ - "($help -)*:containers:__docker_containers" && ret=0 + "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (history) _arguments $(__docker_arguments) \ @@ -1768,11 +1768,11 @@ __docker_subcommand() { case $state in (values) if [[ ${words[(r)--type=container]} == --type=container ]]; then - __docker_containers && ret=0 + __docker_complete_containers && ret=0 elif [[ ${words[(r)--type=image]} == --type=image ]]; then __docker_images && ret=0 else - __docker_images && __docker_containers && ret=0 + __docker_images && __docker_complete_containers && ret=0 fi ;; esac @@ -1781,7 +1781,7 @@ __docker_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ "($help -s --signal)"{-s=,--signal=}"[Signal to send]:signal:_signals" \ - "($help -)*:containers:__docker_runningcontainers" && ret=0 + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (load) _arguments $(__docker_arguments) \ @@ -1809,7 +1809,7 @@ __docker_subcommand() { "($help -s --since)"{-s=,--since=}"[Show logs since this timestamp]:timestamp: " \ "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ "($help)--tail=[Output the last K lines]:lines:(1 10 20 50 all)" \ - "($help -)*:containers:__docker_containers" && ret=0 + "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (network) local curcontext="$curcontext" state @@ -1848,7 +1848,7 @@ __docker_subcommand() { (pause|unpause) _arguments $(__docker_arguments) \ $opts_help \ - "($help -)*:containers:__docker_runningcontainers" && ret=0 + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (plugin) local curcontext="$curcontext" state @@ -1870,14 +1870,14 @@ __docker_subcommand() { (port) _arguments $(__docker_arguments) \ $opts_help \ - "($help -)1:containers:__docker_runningcontainers" \ + "($help -)1:containers:__docker_complete_running_containers" \ "($help -)2:port:_ports" && ret=0 ;; (ps) _arguments $(__docker_arguments) \ $opts_help \ "($help -a --all)"{-a,--all}"[Show all containers]" \ - "($help)--before=[Show only container created before...]:containers:__docker_containers" \ + "($help)--before=[Show only container created before...]:containers:__docker_complete_containers" \ "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_ps_filters" \ "($help)--format=[Pretty-print containers using a Go template]:template: " \ "($help -l --latest)"{-l,--latest}"[Show only the latest created container]" \ @@ -1885,7 +1885,7 @@ __docker_subcommand() { "($help)--no-trunc[Do not truncate output]" \ "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ "($help -s --size)"{-s,--size}"[Display total file sizes]" \ - "($help)--since=[Show only containers created since...]:containers:__docker_containers" && ret=0 + "($help)--since=[Show only containers created since...]:containers:__docker_complete_containers" && ret=0 ;; (pull) _arguments $(__docker_arguments) \ @@ -1903,20 +1903,20 @@ __docker_subcommand() { (rename) _arguments $(__docker_arguments) \ $opts_help \ - "($help -):old name:__docker_containers" \ + "($help -):old name:__docker_complete_containers" \ "($help -):new name: " && ret=0 ;; (stop) _arguments $(__docker_arguments) \ $opts_help \ "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ - "($help -)*:containers:__docker_runningcontainers" && ret=0 + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (restart) _arguments $(__docker_arguments) \ $opts_help \ "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ - "($help -)*:containers:__docker_containers_ids" && ret=0 + "($help -)*:containers:__docker_complete_containers_ids" && ret=0 ;; (rm) _arguments $(__docker_arguments) \ @@ -1928,9 +1928,9 @@ __docker_subcommand() { case $state in (values) if [[ ${words[(r)-f]} == -f || ${words[(r)--force]} == --force ]]; then - __docker_containers && ret=0 + __docker_complete_containers && ret=0 else - __docker_stoppedcontainers && ret=0 + __docker_complete_stopped_containers && ret=0 fi ;; esac @@ -1970,7 +1970,7 @@ __docker_subcommand() { if compset -P "*:"; then _wanted alias expl "Alias" compadd -E "" && ret=0 else - __docker_runningcontainers -qS ":" && ret=0 + __docker_complete_running_containers -qS ":" && ret=0 fi ;; (storage-opt) @@ -2027,7 +2027,7 @@ __docker_subcommand() { $opts_attach_exec_run_start \ "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ "($help -i --interactive)"{-i,--interactive}"[Attach container's stding]" \ - "($help -)*:containers:__docker_stoppedcontainers" && ret=0 + "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 ;; (stats) _arguments $(__docker_arguments) \ @@ -2035,7 +2035,7 @@ __docker_subcommand() { "($help -a --all)"{-a,--all}"[Show all containers (default shows just running)]" \ "($help)--format=[Pretty-print images using a Go template]:template: " \ "($help)--no-stream[Disable streaming stats and only pull the first result]" \ - "($help -)*:containers:__docker_runningcontainers" && ret=0 + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (swarm) local curcontext="$curcontext" state @@ -2063,7 +2063,7 @@ __docker_subcommand() { (top) _arguments $(__docker_arguments) \ $opts_help \ - "($help -)1:containers:__docker_runningcontainers" \ + "($help -)1:containers:__docker_complete_running_containers" \ "($help -)*:: :->ps-arguments" && ret=0 case $state in (ps-arguments) @@ -2082,9 +2082,9 @@ __docker_subcommand() { case $state in (values) if [[ ${words[(r)--kernel-memory*]} = (--kernel-memory*) ]]; then - __docker_stoppedcontainers && ret=0 + __docker_complete_stopped_containers && ret=0 else - __docker_containers && ret=0 + __docker_complete_containers && ret=0 fi ;; esac @@ -2109,7 +2109,7 @@ __docker_subcommand() { (wait) _arguments $(__docker_arguments) \ $opts_help \ - "($help -)*:containers:__docker_runningcontainers" && ret=0 + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (help) _arguments $(__docker_arguments) ":subcommand:__docker_commands" && ret=0 From a9443b738856f9562c8e50a8838a79e1378857b0 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 15:27:41 +0200 Subject: [PATCH 02/26] Add zsh completion for 'docker container' subcommands Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 147 ++++++++++++++++++++++++++++++++- 1 file changed, 146 insertions(+), 1 deletion(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index ac1f7fa3f3..40aba4f137 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -472,6 +472,134 @@ __docker_complete_events_filter() { return ret } +# BO container + +__docker_container_commands() { + local -a _docker_container_subcommands + _docker_container_subcommands=( + "attach:Attach to a running container" + "commit:Create a new image from a container's changes" + "cp:Copy files/folders between a container and the local filesystem" + "create:Create a new container" + "diff:Inspect changes on a container's filesystem" + "exec:Run a command in a running container" + "export:Export a container's filesystem as a tar archive" + "inspect:Display detailed information on one or more containers" + "kill:Kill one or more running containers" + "logs:Fetch the logs of a container" + "ls:List containers" + "pause:Pause all processes within one or more containers" + "port:List port mappings or a specific mapping for the container" + "prune:Remove all stopped containers" + "rename:Rename a container" + "restart:Restart one or more containers" + "rm:Remove one or more containers" + "run:Run a command in a new container" + "start:Start one or more stopped containers" + "stats:Display a live stream of container(s) resource usage statistics" + "stop:Stop one or more running containers" + "top:Display the running processes of a container" + "unpause:Unpause all processes within one or more containers" + "update:Update configuration of one or more containers" + "wait:Block until one or more containers stop, then print their exit codes" + ) + _describe -t docker-container-commands "docker container command" _docker_container_subcommands +} + +__docker_container_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (attach) + __docker_subcommand && ret=0 + ;; + (commit) + __docker_subcommand && ret=0 + ;; + (cp) + __docker_subcommand && ret=0 + ;; + (create) + __docker_subcommand && ret=0 + ;; + (diff) + __docker_subcommand && ret=0 + ;; + (exec) + __docker_subcommand && ret=0 + ;; + (export) + __docker_subcommand && ret=0 + ;; + (inspect) + __docker_subcommand && ret=0 + ;; + (kill) + __docker_subcommand && ret=0 + ;; + (logs) + __docker_subcommand && ret=0 + ;; + (ls|list) + words[1]="ps" + __docker_subcommand && ret=0 + ;; + (pause) + __docker_subcommand && ret=0 + ;; + (port) + __docker_subcommand && ret=0 + ;; + (prune) + # @TODO + ;; + (rename) + __docker_subcommand && ret=0 + ;; + (restart) + __docker_subcommand && ret=0 + ;; + (rm) + __docker_subcommand && ret=0 + ;; + (run) + __docker_subcommand && ret=0 + ;; + (start) + __docker_subcommand && ret=0 + ;; + (stats) + __docker_subcommand && ret=0 + ;; + (stop) + __docker_subcommand && ret=0 + ;; + (top) + __docker_subcommand && ret=0 + ;; + (unpause) + __docker_subcommand && ret=0 + ;; + (update) + __docker_subcommand && ret=0 + ;; + (wait) + __docker_subcommand && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 + ;; + esac + + return ret +} + +# EO container + # BO network __docker_network_complete_ls_filters() { @@ -1418,7 +1546,7 @@ __docker_commands() { then local -a lines lines=(${(f)"$(_call_program commands docker 2>&1)"}) - _docker_subcommands=(${${${lines[$((${lines[(i)Commands:]} + 1)),${lines[(I) *]}]}## #}/ ##/:}) + _docker_subcommands=(${${${(M)${lines[$((${lines[(i)*Commands:]} + 1)),-1]}:# *}## #}/ ##/:}) _docker_subcommands=($_docker_subcommands 'daemon:Enable daemon mode' 'help:Show help for a command') (( $#_docker_subcommands > 2 )) && _store_cache docker_subcommands _docker_subcommands fi @@ -1550,6 +1678,23 @@ __docker_subcommand() { "($help -):container:__docker_complete_containers" \ "($help -): :__docker_repositories_with_tags" && ret=0 ;; + (container) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_container_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_container_subcommand && ret=0 + ;; + esac + ;; (cp) _arguments $(__docker_arguments) \ $opts_help \ From d5ca5c1e084845c8558a598ea7dfde9bfe6cd24d Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 15:39:59 +0200 Subject: [PATCH 03/26] Move zsh completion logic to new subcommand: attach Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 40aba4f137..2e87c483a8 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -507,15 +507,23 @@ __docker_container_commands() { } __docker_container_subcommand() { - local -a _command_args opts_help + local -a _command_args opts_help opts_attach_exec_run_start local expl help="--help" integer ret=1 + opts_attach_exec_run_start=( + "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" + ) opts_help=("(: -)--help[Print usage]") case "$words[1]" in (attach) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_attach_exec_run_start \ + "($help)--no-stdin[Do not attach stdin]" \ + "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ + "($help -):containers:__docker_complete_running_containers" && ret=0 ;; (commit) __docker_subcommand && ret=0 @@ -1644,12 +1652,7 @@ __docker_subcommand() { case "$words[1]" in (attach) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_attach_exec_run_start \ - "($help)--no-stdin[Do not attach stdin]" \ - "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ - "($help -):containers:__docker_complete_running_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (build) _arguments $(__docker_arguments) \ From 89737ea253bad50da4674b708c6e3378d0ebfe42 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 15:41:57 +0200 Subject: [PATCH 04/26] Move zsh completion logic to new subcommand: commit Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 2e87c483a8..d432abdb1d 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -526,7 +526,14 @@ __docker_container_subcommand() { "($help -):containers:__docker_complete_running_containers" && ret=0 ;; (commit) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --author)"{-a=,--author=}"[Author]:author: " \ + "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ + "($help -m --message)"{-m=,--message=}"[Commit message]:message: " \ + "($help -p --pause)"{-p,--pause}"[Pause container during commit]" \ + "($help -):container:__docker_complete_containers" \ + "($help -): :__docker_repositories_with_tags" && ret=0 ;; (cp) __docker_subcommand && ret=0 @@ -1672,14 +1679,7 @@ __docker_subcommand() { "($help -):path or URL:_directories" && ret=0 ;; (commit) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --author)"{-a=,--author=}"[Author]:author: " \ - "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ - "($help -m --message)"{-m=,--message=}"[Commit message]:message: " \ - "($help -p --pause)"{-p,--pause}"[Pause container during commit]" \ - "($help -):container:__docker_complete_containers" \ - "($help -): :__docker_repositories_with_tags" && ret=0 + __docker_container_subcommand && ret=0 ;; (container) local curcontext="$curcontext" state From b067a59bfd8dc8a5758eaa4d03c948b100a4af7b Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 15:43:07 +0200 Subject: [PATCH 05/26] Move zsh completion logic to new subcommand: cp Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index d432abdb1d..258662ece1 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -536,7 +536,20 @@ __docker_container_subcommand() { "($help -): :__docker_repositories_with_tags" && ret=0 ;; (cp) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -L --follow-link)"{-L,--follow-link}"[Always follow symbol link]" \ + "($help -)1:container:->container" \ + "($help -)2:hostpath:_files" && ret=0 + case $state in + (container) + if compset -P "*:"; then + _files && ret=0 + else + __docker_complete_containers -qS ":" && ret=0 + fi + ;; + esac ;; (create) __docker_subcommand && ret=0 @@ -1699,20 +1712,7 @@ __docker_subcommand() { esac ;; (cp) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -L --follow-link)"{-L,--follow-link}"[Always follow symbol link]" \ - "($help -)1:container:->container" \ - "($help -)2:hostpath:_files" && ret=0 - case $state in - (container) - if compset -P "*:"; then - _files && ret=0 - else - __docker_complete_containers -qS ":" && ret=0 - fi - ;; - esac + __docker_container_subcommand && ret=0 ;; (create) _arguments $(__docker_arguments) \ From abf2f0087d46a2568b1830a819c99b1fb90de445 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 15:45:46 +0200 Subject: [PATCH 06/26] Move zsh completion logic to new subcommand: create Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 150 ++++++++++++++++++++++++--------- 1 file changed, 110 insertions(+), 40 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 258662ece1..c466653733 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -507,13 +507,87 @@ __docker_container_commands() { } __docker_container_subcommand() { - local -a _command_args opts_help opts_attach_exec_run_start + local -a _command_args opts_help opts_attach_exec_run_start opts_create_run opts_create_run_update local expl help="--help" integer ret=1 opts_attach_exec_run_start=( "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" ) + opts_create_run=( + "($help -a --attach)"{-a=,--attach=}"[Attach to stdin, stdout or stderr]:device:(STDIN STDOUT STDERR)" + "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " + "($help)*--blkio-weight-device=[Block IO (relative device weight)]:device:Block IO weight: " + "($help)*--cap-add=[Add Linux capabilities]:capability: " + "($help)*--cap-drop=[Drop Linux capabilities]:capability: " + "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " + "($help)--cidfile=[Write the container ID to the file]:CID file:_files" + "($help)*--device=[Add a host device to the container]:device:_files" + "($help)*--device-read-bps=[Limit the read rate (bytes per second) from a device]:device:IO rate: " + "($help)*--device-read-iops=[Limit the read rate (IO per second) from a device]:device:IO rate: " + "($help)*--device-write-bps=[Limit the write rate (bytes per second) to a device]:device:IO rate: " + "($help)*--device-write-iops=[Limit the write rate (IO per second) to a device]:device:IO rate: " + "($help)--disable-content-trust[Skip image verification]" + "($help)*--dns=[Custom DNS servers]:DNS server: " + "($help)*--dns-opt=[Custom DNS options]:DNS option: " + "($help)*--dns-search=[Custom DNS search domains]:DNS domains: " + "($help)*"{-e=,--env=}"[Environment variables]:environment variable: " + "($help)--entrypoint=[Overwrite the default entrypoint of the image]:entry point: " + "($help)*--env-file=[Read environment variables from a file]:environment file:_files" + "($help)*--expose=[Expose a port from the container without publishing it]: " + "($help)*--group=[Set one or more supplementary user groups for the container]:group:_groups" + "($help -h --hostname)"{-h=,--hostname=}"[Container host name]:hostname:_hosts" + "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" + "($help)--ip=[Container IPv4 address]:IPv4: " + "($help)--ip6=[Container IPv6 address]:IPv6: " + "($help)--ipc=[IPC namespace to use]:IPC namespace: " + "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" + "($help)*--link=[Add link to another container]:link:->link" + "($help)*--link-local-ip=[Add a link-local address for the container]:IPv4/IPv6: " + "($help)*"{-l=,--label=}"[Container metadata]:label: " + "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_log_drivers" + "($help)*--log-opt=[Log driver specific options]:log driver options:__docker_log_options" + "($help)--mac-address=[Container MAC address]:MAC address: " + "($help)--name=[Container name]:name: " + "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" + "($help)*--network-alias=[Add network-scoped alias for the container]:alias: " + "($help)--oom-kill-disable[Disable OOM Killer]" + "($help)--oom-score-adj[Tune the host's OOM preferences for containers (accepts -1000 to 1000)]" + "($help)--pids-limit[Tune container pids limit (set -1 for unlimited)]" + "($help -P --publish-all)"{-P,--publish-all}"[Publish all exposed ports]" + "($help)*"{-p=,--publish=}"[Expose a container's port to the host]:port:_ports" + "($help)--pid=[PID namespace to use]:PID namespace:__docker_complete_pid" + "($help)--privileged[Give extended privileges to this container]" + "($help)--read-only[Mount the container's root filesystem as read only]" + "($help)*--security-opt=[Security options]:security option: " + "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " + "($help)--stop-timeout=[Timeout (in seconds) to stop a container]:time: " + "($help)*--sysctl=-[sysctl options]:sysctl: " + "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" + "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" + "($help)*--ulimit=[ulimit options]:ulimit: " + "($help)--userns=[Container user namespace]:user namespace:(host)" + "($help)--tmpfs[mount tmpfs]" + "($help)*-v[Bind mount a volume]:volume: " + "($help)--volume-driver=[Optional volume driver for the container]:volume driver:(local)" + "($help)*--volumes-from=[Mount volumes from the specified container]:volume: " + "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" + ) + opts_create_run_update=( + "($help)--blkio-weight=[Block IO (relative weight), between 10 and 1000]:Block IO weight:(10 100 500 1000)" + "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" + "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " + "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " + "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " + "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " + "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " + "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " + "($help)--kernel-memory=[Kernel memory limit in bytes]:Memory limit: " + "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " + "($help)--memory-reservation=[Memory soft limit]:Memory limit: " + "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " + "($help)--restart=[Restart policy]:restart policy:(no on-failure always unless-stopped)" + ) opts_help=("(: -)--help[Print usage]") case "$words[1]" in @@ -552,7 +626,22 @@ __docker_container_subcommand() { esac ;; (create) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_create_run \ + $opts_create_run_update \ + "($help -): :__docker_images" \ + "($help -):command: _command_names -e" \ + "($help -)*::arguments: _normal" && ret=0 + case $state in + (link) + if compset -P "*:"; then + _wanted alias expl "Alias" compadd -E "" && ret=0 + else + __docker_complete_running_containers -qS ":" && ret=0 + fi + ;; + esac ;; (diff) __docker_subcommand && ret=0 @@ -1582,12 +1671,12 @@ __docker_commands() { } __docker_subcommand() { - local -a _command_args opts_help opts_build_create_run opts_build_create_run_update opts_create_run opts_create_run_update + local -a _command_args opts_help opts_build_run opts_build_run_update opts_run opts_run_update opts_exec_run_start local expl help="--help" integer ret=1 opts_help=("(: -)--help[Print usage]") - opts_build_create_run=( + opts_build_run=( "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" "($help)--disable-content-trust[Skip image verification]" @@ -1595,7 +1684,7 @@ __docker_subcommand() { "($help)*--ulimit=[ulimit options]:ulimit: " "($help)--userns=[Container user namespace]:user namespace:(host)" ) - opts_build_create_run_update=( + opts_build_run_update=( "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " @@ -1606,7 +1695,10 @@ __docker_subcommand() { "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " ) - opts_create_run=( + opts_exec_run_start=( + "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" + ) + opts_run=( "($help -a --attach)"{-a=,--attach=}"[Attach to stdin, stdout or stderr]:device:(STDIN STDOUT STDERR)" "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " "($help)*--blkio-weight-device=[Block IO (relative device weight)]:device:Block IO weight: " @@ -1660,15 +1752,12 @@ __docker_subcommand() { "($help)*--volumes-from=[Mount volumes from the specified container]:volume: " "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" ) - opts_create_run_update=( + opts_run_update=( "($help)--blkio-weight=[Block IO (relative weight), between 10 and 1000]:Block IO weight:(10 100 500 1000)" "($help)--kernel-memory=[Kernel memory limit in bytes]:Memory limit: " "($help)--memory-reservation=[Memory soft limit]:Memory limit: " "($help)--restart=[Restart policy]:restart policy:(no on-failure always unless-stopped)" ) - opts_attach_exec_run_start=( - "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" - ) case "$words[1]" in (attach) @@ -1677,8 +1766,8 @@ __docker_subcommand() { (build) _arguments $(__docker_arguments) \ $opts_help \ - $opts_build_create_run \ - $opts_build_create_run_update \ + $opts_build_run \ + $opts_build_run_update \ "($help)*--build-arg[Build-time variables]:=: " \ "($help)--compress[Compress the build context using gzip]" \ "($help -f --file)"{-f=,--file=}"[Name of the Dockerfile]:Dockerfile:_files" \ @@ -1715,26 +1804,7 @@ __docker_subcommand() { __docker_container_subcommand && ret=0 ;; (create) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_build_create_run \ - $opts_build_create_run_update \ - $opts_create_run \ - $opts_create_run_update \ - "($help -): :__docker_images" \ - "($help -):command: _command_names -e" \ - "($help -)*::arguments: _normal" && ret=0 - - case $state in - (link) - if compset -P "*:"; then - _wanted alias expl "Alias" compadd -E "" && ret=0 - else - __docker_complete_running_containers -qS ":" && ret=0 - fi - ;; - esac - + __docker_container_subcommand && ret=0 ;; (daemon) _arguments $(__docker_arguments) \ @@ -2093,11 +2163,11 @@ __docker_subcommand() { (run) _arguments $(__docker_arguments) \ $opts_help \ - $opts_build_create_run \ - $opts_build_create_run_update \ - $opts_create_run \ - $opts_create_run_update \ - $opts_attach_exec_run_start \ + $opts_build_run \ + $opts_build_run_update \ + $opts_run \ + $opts_run_update \ + $opts_exec_run_start \ "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ "($help)--health-cmd=[Command to run to check health]:command: " \ "($help)--health-interval=[Time between running the check]:time: " \ @@ -2172,7 +2242,7 @@ __docker_subcommand() { (start) _arguments $(__docker_arguments) \ $opts_help \ - $opts_attach_exec_run_start \ + $opts_exec_run_start \ "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ "($help -i --interactive)"{-i,--interactive}"[Attach container's stding]" \ "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 @@ -2223,8 +2293,8 @@ __docker_subcommand() { (update) _arguments $(__docker_arguments) \ $opts_help \ - $opts_create_run_update \ - $opts_build_create_run_update \ + $opts_run_update \ + $opts_build_run_update \ "($help -)*: :->values" && ret=0 case $state in From 0632c344398ce0b36f14e6c100153892c0933145 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 15:46:56 +0200 Subject: [PATCH 07/26] Move zsh completion logic to new subcommand: diff Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index c466653733..4a06985839 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -644,7 +644,9 @@ __docker_container_subcommand() { esac ;; (diff) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (exec) __docker_subcommand && ret=0 @@ -1896,9 +1898,7 @@ __docker_subcommand() { esac ;; (diff) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (events) _arguments $(__docker_arguments) \ From ee27e97218e2c37bfb3adbef643d671ca75cc18d Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 15:48:25 +0200 Subject: [PATCH 08/26] Move zsh completion logic to new subcommand: exec Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 47 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 4a06985839..81265de9f4 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -649,7 +649,25 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (exec) - __docker_subcommand && ret=0 + local state + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_attach_exec_run_start \ + "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ + "($help)*"{-e=,--env=}"[Set environment variables]:environment variable: " \ + "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" \ + "($help)--privileged[Give extended Linux capabilities to the command]" \ + "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" \ + "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" \ + "($help -):containers:__docker_complete_running_containers" \ + "($help -)*::command:->anycommand" && ret=0 + case $state in + (anycommand) + shift 1 words + (( CURRENT-- )) + _normal && ret=0 + ;; + esac ;; (export) __docker_subcommand && ret=0 @@ -1673,7 +1691,7 @@ __docker_commands() { } __docker_subcommand() { - local -a _command_args opts_help opts_build_run opts_build_run_update opts_run opts_run_update opts_exec_run_start + local -a _command_args opts_help opts_build_run opts_build_run_update opts_run opts_run_update opts_run_start local expl help="--help" integer ret=1 @@ -1697,7 +1715,7 @@ __docker_subcommand() { "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " ) - opts_exec_run_start=( + opts_run_start=( "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" ) opts_run=( @@ -1909,26 +1927,7 @@ __docker_subcommand() { "($help)--format=[Format the output using the given go template]:template: " && ret=0 ;; (exec) - local state - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_attach_exec_run_start \ - "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ - "($help)*"{-e=,--env=}"[Set environment variables]:environment variable: " \ - "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" \ - "($help)--privileged[Give extended Linux capabilities to the command]" \ - "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" \ - "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" \ - "($help -):containers:__docker_complete_running_containers" \ - "($help -)*::command:->anycommand" && ret=0 - - case $state in - (anycommand) - shift 1 words - (( CURRENT-- )) - _normal && ret=0 - ;; - esac + __docker_container_subcommand && ret=0 ;; (export) _arguments $(__docker_arguments) \ @@ -2242,7 +2241,7 @@ __docker_subcommand() { (start) _arguments $(__docker_arguments) \ $opts_help \ - $opts_exec_run_start \ + $opts_run_start \ "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ "($help -i --interactive)"{-i,--interactive}"[Attach container's stding]" \ "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 From 911ef73ee1777eaa7cac08dadaf77bdd9cc9a2e5 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sat, 29 Oct 2016 16:05:57 +0200 Subject: [PATCH 09/26] Move zsh completion logic to new subcommand: export Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 81265de9f4..5eebd74719 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -670,7 +670,10 @@ __docker_container_subcommand() { esac ;; (export) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -o --output)"{-o=,--output=}"[Write to a file, instead of stdout]:output file:_files" \ + "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (inspect) __docker_subcommand && ret=0 @@ -1930,10 +1933,7 @@ __docker_subcommand() { __docker_container_subcommand && ret=0 ;; (export) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -o --output)"{-o=,--output=}"[Write to a file, instead of stdout]:output file:_files" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (history) _arguments $(__docker_arguments) \ From e5424b656b0eeb7006384d8846c8e05e02a9e35f Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 16:45:02 +0100 Subject: [PATCH 10/26] Add zsh completion logic to new subcommand: inspect Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 5eebd74719..50ddac87a4 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -676,7 +676,11 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (inspect) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --format)"{-f=,--format=}"[Format the output using the given go template]:template: " \ + "($help -s --size)"{-s,--size}"[Display total file sizes]" \ + "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (kill) __docker_subcommand && ret=0 From 45fdea257c7ee8c96249a8772809d23768ed7612 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 16:46:04 +0100 Subject: [PATCH 11/26] Move zsh completion logic to new subcommand: kill Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 50ddac87a4..45f29abc36 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -683,7 +683,10 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (kill) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -s --signal)"{-s=,--signal=}"[Signal to send]:signal:_signals" \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (logs) __docker_subcommand && ret=0 @@ -1999,10 +2002,7 @@ __docker_subcommand() { esac ;; (kill) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -s --signal)"{-s=,--signal=}"[Signal to send]:signal:_signals" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (load) _arguments $(__docker_arguments) \ From 28bd6162126c0d494b2d8379e2608a1fc7017aa7 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 16:46:59 +0100 Subject: [PATCH 12/26] Move zsh completion logic to new subcommand: logs Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 45f29abc36..474008f3d8 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -689,7 +689,14 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (logs) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--details[Show extra details provided to logs]" \ + "($help -f --follow)"{-f,--follow}"[Follow log output]" \ + "($help -s --since)"{-s=,--since=}"[Show logs since this timestamp]:timestamp: " \ + "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ + "($help)--tail=[Output the last K lines]:lines:(1 10 20 50 all)" \ + "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (ls|list) words[1]="ps" @@ -2023,14 +2030,7 @@ __docker_subcommand() { "($help -)1:server: " && ret=0 ;; (logs) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--details[Show extra details provided to logs]" \ - "($help -f --follow)"{-f,--follow}"[Follow log output]" \ - "($help -s --since)"{-s=,--since=}"[Show logs since this timestamp]:timestamp: " \ - "($help -t --timestamps)"{-t,--timestamps}"[Show timestamps]" \ - "($help)--tail=[Output the last K lines]:lines:(1 10 20 50 all)" \ - "($help -)*:containers:__docker_complete_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (network) local curcontext="$curcontext" state From 44bb318161a0406e121c231b735395536fab27c7 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 16:49:16 +0100 Subject: [PATCH 13/26] Move zsh completion logic to new subcommand: ps Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 474008f3d8..41b6ad7f9a 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -699,8 +699,18 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_containers" && ret=0 ;; (ls|list) - words[1]="ps" - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Show all containers]" \ + "($help)--before=[Show only container created before...]:containers:__docker_complete_containers" \ + "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_ps_filters" \ + "($help)--format=[Pretty-print containers using a Go template]:template: " \ + "($help -l --latest)"{-l,--latest}"[Show only the latest created container]" \ + "($help -n --last)"{-n=,--last=}"[Show n last created containers (includes all states)]:n:(1 5 10 25 50)" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ + "($help -s --size)"{-s,--size}"[Display total file sizes]" \ + "($help)--since=[Show only containers created since...]:containers:__docker_complete_containers" && ret=0 ;; (pause) __docker_subcommand && ret=0 @@ -2095,18 +2105,8 @@ __docker_subcommand() { "($help -)2:port:_ports" && ret=0 ;; (ps) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all containers]" \ - "($help)--before=[Show only container created before...]:containers:__docker_complete_containers" \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:__docker_complete_ps_filters" \ - "($help)--format=[Pretty-print containers using a Go template]:template: " \ - "($help -l --latest)"{-l,--latest}"[Show only the latest created container]" \ - "($help -n --last)"{-n=,--last=}"[Show n last created containers (includes all states)]:n:(1 5 10 25 50)" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ - "($help -s --size)"{-s,--size}"[Display total file sizes]" \ - "($help)--since=[Show only containers created since...]:containers:__docker_complete_containers" && ret=0 + words[1]='ls' + __docker_container_subcommand && ret=0 ;; (pull) _arguments $(__docker_arguments) \ From e602bfbc34bb69bb2c9f0e08b4bfe31362dd36fc Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 16:51:26 +0100 Subject: [PATCH 14/26] Move zsh completion logic to new subcommand: pause, unpause Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 41b6ad7f9a..361ade355a 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -712,8 +712,10 @@ __docker_container_subcommand() { "($help -s --size)"{-s,--size}"[Display total file sizes]" \ "($help)--since=[Show only containers created since...]:containers:__docker_complete_containers" && ret=0 ;; - (pause) - __docker_subcommand && ret=0 + (pause|unpause) + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (port) __docker_subcommand && ret=0 @@ -745,9 +747,6 @@ __docker_container_subcommand() { (top) __docker_subcommand && ret=0 ;; - (unpause) - __docker_subcommand && ret=0 - ;; (update) __docker_subcommand && ret=0 ;; @@ -2077,9 +2076,7 @@ __docker_subcommand() { esac ;; (pause|unpause) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (plugin) local curcontext="$curcontext" state From 4ffc37224dbf9bcfe11a3e81c42d090bbe5761e1 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 16:51:53 +0100 Subject: [PATCH 15/26] Move zsh completion logic to new subcommand: port Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 361ade355a..a65e5f786f 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -718,7 +718,10 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (port) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:containers:__docker_complete_running_containers" \ + "($help -)2:port:_ports" && ret=0 ;; (prune) # @TODO @@ -2096,10 +2099,7 @@ __docker_subcommand() { esac ;; (port) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:containers:__docker_complete_running_containers" \ - "($help -)2:port:_ports" && ret=0 + __docker_container_subcommand && ret=0 ;; (ps) words[1]='ls' From fc6bd2272525772ab5c05cad2679a06afdfabb51 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 16:52:41 +0100 Subject: [PATCH 16/26] Move zsh completion logic to new subcommand: rename Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index a65e5f786f..659b4bbf6d 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -727,7 +727,10 @@ __docker_container_subcommand() { # @TODO ;; (rename) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -):old name:__docker_complete_containers" \ + "($help -):new name: " && ret=0 ;; (restart) __docker_subcommand && ret=0 @@ -2119,10 +2122,7 @@ __docker_subcommand() { "($help -): :__docker_images" && ret=0 ;; (rename) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -):old name:__docker_complete_containers" \ - "($help -):new name: " && ret=0 + __docker_container_subcommand && ret=0 ;; (stop) _arguments $(__docker_arguments) \ From 64b546e7b8e6248eadd4e452d4e91d74f88563f5 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:21:16 +0100 Subject: [PATCH 17/26] Move zsh completion logic to new subcommand: restart Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 659b4bbf6d..12badf0c85 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -733,7 +733,10 @@ __docker_container_subcommand() { "($help -):new name: " && ret=0 ;; (restart) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ + "($help -)*:containers:__docker_complete_containers_ids" && ret=0 ;; (rm) __docker_subcommand && ret=0 @@ -2131,10 +2134,7 @@ __docker_subcommand() { "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (restart) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ - "($help -)*:containers:__docker_complete_containers_ids" && ret=0 + __docker_container_subcommand && ret=0 ;; (rm) _arguments $(__docker_arguments) \ From 1df32a4f6c3160a6bbe7ab5a36be6e10ea51616f Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:22:26 +0100 Subject: [PATCH 18/26] Move zsh completion logic to new subcommand: rm Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 12badf0c85..ecb6bbe260 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -739,7 +739,22 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_containers_ids" && ret=0 ;; (rm) - __docker_subcommand && ret=0 + local state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force removal]" \ + "($help -l --link)"{-l,--link}"[Remove the specified link and not the underlying container]" \ + "($help -v --volumes)"{-v,--volumes}"[Remove the volumes associated to the container]" \ + "($help -)*:containers:->values" && ret=0 + case $state in + (values) + if [[ ${words[(r)-f]} == -f || ${words[(r)--force]} == --force ]]; then + __docker_complete_containers && ret=0 + else + __docker_complete_stopped_containers && ret=0 + fi + ;; + esac ;; (run) __docker_subcommand && ret=0 @@ -2137,21 +2152,7 @@ __docker_subcommand() { __docker_container_subcommand && ret=0 ;; (rm) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force removal]" \ - "($help -l --link)"{-l,--link}"[Remove the specified link and not the underlying container]" \ - "($help -v --volumes)"{-v,--volumes}"[Remove the volumes associated to the container]" \ - "($help -)*:containers:->values" && ret=0 - case $state in - (values) - if [[ ${words[(r)-f]} == -f || ${words[(r)--force]} == --force ]]; then - __docker_complete_containers && ret=0 - else - __docker_complete_stopped_containers && ret=0 - fi - ;; - esac + __docker_container_subcommand && ret=0 ;; (rmi) _arguments $(__docker_arguments) \ From dcc5b72020382d2b379c26d25d6e173609e1c2fc Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:29:03 +0100 Subject: [PATCH 19/26] Move zsh completion logic to new subcommand: run Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 154 +++++++++++---------------------- 1 file changed, 49 insertions(+), 105 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index ecb6bbe260..7f1d985d04 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -548,6 +548,7 @@ __docker_container_subcommand() { "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_log_drivers" "($help)*--log-opt=[Log driver specific options]:log driver options:__docker_log_options" "($help)--mac-address=[Container MAC address]:MAC address: " + "($help)*--mount=[Attach a filesystem mount to the container]:mount: " "($help)--name=[Container name]:name: " "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" "($help)*--network-alias=[Add network-scoped alias for the container]:alias: " @@ -757,7 +758,43 @@ __docker_container_subcommand() { esac ;; (run) - __docker_subcommand && ret=0 + local state + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_create_run \ + $opts_create_run_update \ + $opts_attach_exec_run_start \ + "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ + "($help)--health-cmd=[Command to run to check health]:command: " \ + "($help)--health-interval=[Time between running the check]:time: " \ + "($help)--health-retries=[Consecutive failures needed to report unhealthy]:retries:(1 2 3 4 5)" \ + "($help)--health-timeout=[Maximum time to allow one check to run]:time: " \ + "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" \ + "($help)--rm[Remove intermediate containers when it exits]" \ + "($help)--runtime=[Name of the runtime to be used for that container]:runtime:__docker_complete_runtimes" \ + "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ + "($help)--stop-signal=[Signal to kill a container]:signal:_signals" \ + "($help)--storage-opt=[Storage driver options for the container]:storage options:->storage-opt" \ + "($help -): :__docker_images" \ + "($help -):command: _command_names -e" \ + "($help -)*::arguments: _normal" && ret=0 + case $state in + (link) + if compset -P "*:"; then + _wanted alias expl "Alias" compadd -E "" && ret=0 + else + __docker_complete_running_containers -qS ":" && ret=0 + fi + ;; + (storage-opt) + if compset -P "*="; then + _message "value" && ret=0 + else + opts=('size') + _describe -t filter-opts "storage options" opts -qS "=" && ret=0 + fi + ;; + esac ;; (start) __docker_subcommand && ret=0 @@ -1741,12 +1778,12 @@ __docker_commands() { } __docker_subcommand() { - local -a _command_args opts_help opts_build_run opts_build_run_update opts_run opts_run_update opts_run_start + local -a _command_args opts_help opts_build opts_build_update opts_update local expl help="--help" integer ret=1 opts_help=("(: -)--help[Print usage]") - opts_build_run=( + opts_build=( "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" "($help)--disable-content-trust[Skip image verification]" @@ -1754,7 +1791,7 @@ __docker_subcommand() { "($help)*--ulimit=[ulimit options]:ulimit: " "($help)--userns=[Container user namespace]:user namespace:(host)" ) - opts_build_run_update=( + opts_build_update=( "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " @@ -1765,64 +1802,10 @@ __docker_subcommand() { "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " ) - opts_run_start=( + opts_start=( "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" ) - opts_run=( - "($help -a --attach)"{-a=,--attach=}"[Attach to stdin, stdout or stderr]:device:(STDIN STDOUT STDERR)" - "($help)*--add-host=[Add a custom host-to-IP mapping]:host\:ip mapping: " - "($help)*--blkio-weight-device=[Block IO (relative device weight)]:device:Block IO weight: " - "($help)*--cap-add=[Add Linux capabilities]:capability: " - "($help)*--cap-drop=[Drop Linux capabilities]:capability: " - "($help)--cidfile=[Write the container ID to the file]:CID file:_files" - "($help)*--device=[Add a host device to the container]:device:_files" - "($help)*--device-read-bps=[Limit the read rate (bytes per second) from a device]:device:IO rate: " - "($help)*--device-read-iops=[Limit the read rate (IO per second) from a device]:device:IO rate: " - "($help)*--device-write-bps=[Limit the write rate (bytes per second) to a device]:device:IO rate: " - "($help)*--device-write-iops=[Limit the write rate (IO per second) to a device]:device:IO rate: " - "($help)*--dns=[Custom DNS servers]:DNS server: " - "($help)*--dns-opt=[Custom DNS options]:DNS option: " - "($help)*--dns-search=[Custom DNS search domains]:DNS domains: " - "($help)*"{-e=,--env=}"[Environment variables]:environment variable: " - "($help)--entrypoint=[Overwrite the default entrypoint of the image]:entry point: " - "($help)*--env-file=[Read environment variables from a file]:environment file:_files" - "($help)*--expose=[Expose a port from the container without publishing it]: " - "($help)*--group=[Set one or more supplementary user groups for the container]:group:_groups" - "($help -h --hostname)"{-h=,--hostname=}"[Container host name]:hostname:_hosts" - "($help -i --interactive)"{-i,--interactive}"[Keep stdin open even if not attached]" - "($help)--ip=[Container IPv4 address]:IPv4: " - "($help)--ip6=[Container IPv6 address]:IPv6: " - "($help)--ipc=[IPC namespace to use]:IPC namespace: " - "($help)*--link=[Add link to another container]:link:->link" - "($help)*--link-local-ip=[Add a link-local address for the container]:IPv4/IPv6: " - "($help)*"{-l=,--label=}"[Container metadata]:label: " - "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_log_drivers" - "($help)*--log-opt=[Log driver specific options]:log driver options:__docker_log_options" - "($help)--mac-address=[Container MAC address]:MAC address: " - "($help)*--mount=[Attach a filesystem mount to the container]:mount: " - "($help)--name=[Container name]:name: " - "($help)--network=[Connect a container to a network]:network mode:(bridge none container host)" - "($help)*--network-alias=[Add network-scoped alias for the container]:alias: " - "($help)--oom-kill-disable[Disable OOM Killer]" - "($help)--oom-score-adj[Tune the host's OOM preferences for containers (accepts -1000 to 1000)]" - "($help)--pids-limit[Tune container pids limit (set -1 for unlimited)]" - "($help -P --publish-all)"{-P,--publish-all}"[Publish all exposed ports]" - "($help)*"{-p=,--publish=}"[Expose a container's port to the host]:port:_ports" - "($help)--pid=[PID namespace to use]:PID namespace:__docker_complete_pid" - "($help)--privileged[Give extended privileges to this container]" - "($help)--read-only[Mount the container's root filesystem as read only]" - "($help)*--security-opt=[Security options]:security option: " - "($help)--stop-timeout=[Timeout (in seconds) to stop a container]:time: " - "($help)*--sysctl=-[sysctl options]:sysctl: " - "($help -t --tty)"{-t,--tty}"[Allocate a pseudo-tty]" - "($help -u --user)"{-u=,--user=}"[Username or UID]:user:_users" - "($help)--tmpfs[mount tmpfs]" - "($help)*-v[Bind mount a volume]:volume: " - "($help)--volume-driver=[Optional volume driver for the container]:volume driver:(local)" - "($help)*--volumes-from=[Mount volumes from the specified container]:volume: " - "($help -w --workdir)"{-w=,--workdir=}"[Working directory inside the container]:directory:_directories" - ) - opts_run_update=( + opts_update=( "($help)--blkio-weight=[Block IO (relative weight), between 10 and 1000]:Block IO weight:(10 100 500 1000)" "($help)--kernel-memory=[Kernel memory limit in bytes]:Memory limit: " "($help)--memory-reservation=[Memory soft limit]:Memory limit: " @@ -1836,8 +1819,8 @@ __docker_subcommand() { (build) _arguments $(__docker_arguments) \ $opts_help \ - $opts_build_run \ - $opts_build_run_update \ + $opts_build \ + $opts_build_update \ "($help)*--build-arg[Build-time variables]:=: " \ "($help)--compress[Compress the build context using gzip]" \ "($help -f --file)"{-f=,--file=}"[Name of the Dockerfile]:Dockerfile:_files" \ @@ -2162,46 +2145,7 @@ __docker_subcommand() { "($help -)*: :__docker_images" && ret=0 ;; (run) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_build_run \ - $opts_build_run_update \ - $opts_run \ - $opts_run_update \ - $opts_exec_run_start \ - "($help -d --detach)"{-d,--detach}"[Detached mode: leave the container running in the background]" \ - "($help)--health-cmd=[Command to run to check health]:command: " \ - "($help)--health-interval=[Time between running the check]:time: " \ - "($help)--health-retries=[Consecutive failures needed to report unhealthy]:retries:(1 2 3 4 5)" \ - "($help)--health-timeout=[Maximum time to allow one check to run]:time: " \ - "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" \ - "($help)--rm[Remove intermediate containers when it exits]" \ - "($help)--runtime=[Name of the runtime to be used for that container]:runtime:__docker_complete_runtimes" \ - "($help)--sig-proxy[Proxy all received signals to the process (non-TTY mode only)]" \ - "($help)--stop-signal=[Signal to kill a container]:signal:_signals" \ - "($help)--storage-opt=[Storage driver options for the container]:storage options:->storage-opt" \ - "($help -): :__docker_images" \ - "($help -):command: _command_names -e" \ - "($help -)*::arguments: _normal" && ret=0 - - case $state in - (link) - if compset -P "*:"; then - _wanted alias expl "Alias" compadd -E "" && ret=0 - else - __docker_complete_running_containers -qS ":" && ret=0 - fi - ;; - (storage-opt) - if compset -P "*="; then - _message "value" && ret=0 - else - opts=('size') - _describe -t filter-opts "storage options" opts -qS "=" && ret=0 - fi - ;; - esac - + __docker_container_subcommand && ret=0 ;; (save) _arguments $(__docker_arguments) \ @@ -2243,7 +2187,7 @@ __docker_subcommand() { (start) _arguments $(__docker_arguments) \ $opts_help \ - $opts_run_start \ + $opts_start \ "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ "($help -i --interactive)"{-i,--interactive}"[Attach container's stding]" \ "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 @@ -2294,8 +2238,8 @@ __docker_subcommand() { (update) _arguments $(__docker_arguments) \ $opts_help \ - $opts_run_update \ - $opts_build_run_update \ + $opts_update \ + $opts_build_update \ "($help -)*: :->values" && ret=0 case $state in From 8e5285c283ac352702689a652eab13ba93d4bb41 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:40:53 +0100 Subject: [PATCH 20/26] Move zsh completion logic to new subcommand: start Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 7f1d985d04..1318bcba9c 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -797,7 +797,12 @@ __docker_container_subcommand() { esac ;; (start) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + $opts_attach_exec_run_start \ + "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ + "($help -i --interactive)"{-i,--interactive}"[Attach container's stding]" \ + "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 ;; (stats) __docker_subcommand && ret=0 @@ -1802,9 +1807,6 @@ __docker_subcommand() { "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " ) - opts_start=( - "($help)--detach-keys=[Escape key sequence used to detach a container]:sequence:__docker_complete_detach_keys" - ) opts_update=( "($help)--blkio-weight=[Block IO (relative weight), between 10 and 1000]:Block IO weight:(10 100 500 1000)" "($help)--kernel-memory=[Kernel memory limit in bytes]:Memory limit: " @@ -2185,12 +2187,7 @@ __docker_subcommand() { esac ;; (start) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_start \ - "($help -a --attach)"{-a,--attach}"[Attach container's stdout/stderr and forward all signals]" \ - "($help -i --interactive)"{-i,--interactive}"[Attach container's stding]" \ - "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (stats) _arguments $(__docker_arguments) \ From d0e4f7fbe69d189a39a2c35584aee12dfe1cec2f Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:41:39 +0100 Subject: [PATCH 21/26] Move zsh completion logic to new subcommand: stats Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 1318bcba9c..0707de449f 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -805,7 +805,12 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_stopped_containers" && ret=0 ;; (stats) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Show all containers (default shows just running)]" \ + "($help)--format=[Pretty-print images using a Go template]:template: " \ + "($help)--no-stream[Disable streaming stats and only pull the first result]" \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (stop) __docker_subcommand && ret=0 @@ -2190,12 +2195,7 @@ __docker_subcommand() { __docker_container_subcommand && ret=0 ;; (stats) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all containers (default shows just running)]" \ - "($help)--format=[Pretty-print images using a Go template]:template: " \ - "($help)--no-stream[Disable streaming stats and only pull the first result]" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (swarm) local curcontext="$curcontext" state From 6aff1be4303aff902a1997a300d910a6bfd19445 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:42:49 +0100 Subject: [PATCH 22/26] Move zsh completion logic to new subcommand: stop Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 0707de449f..4c06b28b50 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -813,7 +813,10 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (stop) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (top) __docker_subcommand && ret=0 @@ -2132,12 +2135,6 @@ __docker_subcommand() { (rename) __docker_container_subcommand && ret=0 ;; - (stop) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -t --time)"{-t=,--time=}"[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)" \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 - ;; (restart) __docker_container_subcommand && ret=0 ;; @@ -2197,6 +2194,9 @@ __docker_subcommand() { (stats) __docker_container_subcommand && ret=0 ;; + (stop) + __docker_container_subcommand && ret=0 + ;; (swarm) local curcontext="$curcontext" state _arguments $(__docker_arguments) \ From 07a3ccec0a677aa198afa8b407f75c48cebd033a Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:44:48 +0100 Subject: [PATCH 23/26] Move zsh completion logic to new subcommand: top Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 4c06b28b50..0f5d8e2a88 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -819,7 +819,16 @@ __docker_container_subcommand() { "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (top) - __docker_subcommand && ret=0 + local state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)1:containers:__docker_complete_running_containers" \ + "($help -)*:: :->ps-arguments" && ret=0 + case $state in + (ps-arguments) + _ps && ret=0 + ;; + esac ;; (update) __docker_subcommand && ret=0 @@ -2221,16 +2230,7 @@ __docker_subcommand() { "($help -):destination:__docker_repositories_with_tags" && ret=0 ;; (top) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)1:containers:__docker_complete_running_containers" \ - "($help -)*:: :->ps-arguments" && ret=0 - case $state in - (ps-arguments) - _ps && ret=0 - ;; - esac - + __docker_container_subcommand && ret=0 ;; (update) _arguments $(__docker_arguments) \ From b25603391c3ed562d136aa0eafcd7b35ff6c686a Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:49:35 +0100 Subject: [PATCH 24/26] Move zsh completion logic to new subcommand: update Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 54 ++++++++++++++-------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 0f5d8e2a88..8fa2dc2216 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -831,7 +831,20 @@ __docker_container_subcommand() { esac ;; (update) - __docker_subcommand && ret=0 + local state + _arguments $(__docker_arguments) \ + $opts_help \ + opts_create_run_update \ + "($help -)*: :->values" && ret=0 + case $state in + (values) + if [[ ${words[(r)--kernel-memory*]} = (--kernel-memory*) ]]; then + __docker_complete_stopped_containers && ret=0 + else + __docker_complete_containers && ret=0 + fi + ;; + esac ;; (wait) __docker_subcommand && ret=0 @@ -1800,35 +1813,27 @@ __docker_commands() { } __docker_subcommand() { - local -a _command_args opts_help opts_build opts_build_update opts_update + local -a _command_args opts_help opts_build local expl help="--help" integer ret=1 opts_help=("(: -)--help[Print usage]") opts_build=( - "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " - "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" - "($help)--disable-content-trust[Skip image verification]" - "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " - "($help)*--ulimit=[ulimit options]:ulimit: " - "($help)--userns=[Container user namespace]:user namespace:(host)" - ) - opts_build_update=( "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" + "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " + "($help)--disable-content-trust[Skip image verification]" + "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " - ) - opts_update=( - "($help)--blkio-weight=[Block IO (relative weight), between 10 and 1000]:Block IO weight:(10 100 500 1000)" - "($help)--kernel-memory=[Kernel memory limit in bytes]:Memory limit: " - "($help)--memory-reservation=[Memory soft limit]:Memory limit: " - "($help)--restart=[Restart policy]:restart policy:(no on-failure always unless-stopped)" + "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " + "($help)*--ulimit=[ulimit options]:ulimit: " + "($help)--userns=[Container user namespace]:user namespace:(host)" ) case "$words[1]" in @@ -1839,7 +1844,6 @@ __docker_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ $opts_build \ - $opts_build_update \ "($help)*--build-arg[Build-time variables]:=: " \ "($help)--compress[Compress the build context using gzip]" \ "($help -f --file)"{-f=,--file=}"[Name of the Dockerfile]:Dockerfile:_files" \ @@ -2233,21 +2237,7 @@ __docker_subcommand() { __docker_container_subcommand && ret=0 ;; (update) - _arguments $(__docker_arguments) \ - $opts_help \ - $opts_update \ - $opts_build_update \ - "($help -)*: :->values" && ret=0 - - case $state in - (values) - if [[ ${words[(r)--kernel-memory*]} = (--kernel-memory*) ]]; then - __docker_complete_stopped_containers && ret=0 - else - __docker_complete_containers && ret=0 - fi - ;; - esac + __docker_container_subcommand && ret=0 ;; (volume) local curcontext="$curcontext" state From 6a662de9650c19d8ada575badee4a5e4f3290e5d Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 18:50:36 +0100 Subject: [PATCH 25/26] Move zsh completion logic to new subcommand: wait Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 8fa2dc2216..3c50ba862c 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -847,7 +847,9 @@ __docker_container_subcommand() { esac ;; (wait) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -)*:containers:__docker_complete_running_containers" && ret=0 ;; (help) _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 @@ -2257,9 +2259,7 @@ __docker_subcommand() { esac ;; (wait) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -)*:containers:__docker_complete_running_containers" && ret=0 + __docker_container_subcommand && ret=0 ;; (help) _arguments $(__docker_arguments) ":subcommand:__docker_commands" && ret=0 From 94863d8c63dbdb811afba20b79d0502903fdd313 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 19:43:22 +0100 Subject: [PATCH 26/26] Cleanup after moving all zsh completion logics for the new container command Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 99 +++++++--------------------------- 1 file changed, 19 insertions(+), 80 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 3c50ba862c..d113abe019 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -611,6 +611,7 @@ __docker_container_subcommand() { "($help -): :__docker_repositories_with_tags" && ret=0 ;; (cp) + local state _arguments $(__docker_arguments) \ $opts_help \ "($help -L --follow-link)"{-L,--follow-link}"[Always follow symbol link]" \ @@ -627,6 +628,7 @@ __docker_container_subcommand() { esac ;; (create) + local state _arguments $(__docker_arguments) \ $opts_help \ $opts_create_run \ @@ -1815,52 +1817,46 @@ __docker_commands() { } __docker_subcommand() { - local -a _command_args opts_help opts_build + local -a _command_args opts_help local expl help="--help" integer ret=1 opts_help=("(: -)--help[Print usage]") - opts_build=( - "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" - "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " - "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " - "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " - "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " - "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " - "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " - "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " - "($help)--disable-content-trust[Skip image verification]" - "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" - "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " - "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " - "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " - "($help)*--ulimit=[ulimit options]:ulimit: " - "($help)--userns=[Container user namespace]:user namespace:(host)" - ) case "$words[1]" in - (attach) + (attach|commit|cp|create|diff|exec|export|kill|logs|pause|unpause|port|rename|restart|rm|run|start|stats|stop|top|update|wait) __docker_container_subcommand && ret=0 ;; (build) _arguments $(__docker_arguments) \ $opts_help \ - $opts_build \ "($help)*--build-arg[Build-time variables]:=: " \ + "($help -c --cpu-shares)"{-c=,--cpu-shares=}"[CPU shares (relative weight)]:CPU shares:(0 10 100 200 500 800 1000)" \ + "($help)--cgroup-parent=[Parent cgroup for the container]:cgroup: " \ "($help)--compress[Compress the build context using gzip]" \ + "($help)--cpu-period=[Limit the CPU CFS (Completely Fair Scheduler) period]:CPU period: " \ + "($help)--cpu-quota=[Limit the CPU CFS (Completely Fair Scheduler) quota]:CPU quota: " \ + "($help)--cpu-rt-period=[Limit the CPU real-time period]:CPU real-time period in microseconds: " \ + "($help)--cpu-rt-runtime=[Limit the CPU real-time runtime]:CPU real-time runtime in microseconds: " \ + "($help)--cpuset-cpus=[CPUs in which to allow execution]:CPUs: " \ + "($help)--cpuset-mems=[MEMs in which to allow execution]:MEMs: " \ + "($help)--disable-content-trust[Skip image verification]" \ "($help -f --file)"{-f=,--file=}"[Name of the Dockerfile]:Dockerfile:_files" \ "($help)--force-rm[Always remove intermediate containers]" \ + "($help)--isolation=[Container isolation technology]:isolation:(default hyperv process)" \ "($help)*--label=[Set metadata for an image]:label=value: " \ + "($help -m --memory)"{-m=,--memory=}"[Memory limit]:Memory limit: " \ + "($help)--memory-swap=[Total memory limit with swap]:Memory limit: " \ "($help)--no-cache[Do not use cache when building the image]" \ "($help)--pull[Attempt to pull a newer version of the image]" \ "($help -q --quiet)"{-q,--quiet}"[Suppress verbose build output]" \ "($help)--rm[Remove intermediate containers after a successful build]" \ + "($help)*--shm-size=[Size of '/dev/shm' (format is '')]:shm size: " \ "($help -t --tag)*"{-t=,--tag=}"[Repository, name and tag for the image]: :__docker_repositories_with_tags" \ + "($help)*--ulimit=[ulimit options]:ulimit: " \ + "($help)--userns=[Container user namespace]:user namespace:(host)" \ "($help -):path or URL:_directories" && ret=0 ;; - (commit) - __docker_container_subcommand && ret=0 - ;; (container) local curcontext="$curcontext" state _arguments $(__docker_arguments) \ @@ -1878,12 +1874,6 @@ __docker_subcommand() { ;; esac ;; - (cp) - __docker_container_subcommand && ret=0 - ;; - (create) - __docker_container_subcommand && ret=0 - ;; (daemon) _arguments $(__docker_arguments) \ $opts_help \ @@ -1973,9 +1963,6 @@ __docker_subcommand() { ;; esac ;; - (diff) - __docker_container_subcommand && ret=0 - ;; (events) _arguments $(__docker_arguments) \ $opts_help \ @@ -1984,12 +1971,6 @@ __docker_subcommand() { "($help)--until=[Events created until this timestamp]:timestamp: " \ "($help)--format=[Format the output using the given go template]:template: " && ret=0 ;; - (exec) - __docker_container_subcommand && ret=0 - ;; - (export) - __docker_container_subcommand && ret=0 - ;; (history) _arguments $(__docker_arguments) \ $opts_help \ @@ -2049,9 +2030,6 @@ __docker_subcommand() { ;; esac ;; - (kill) - __docker_container_subcommand && ret=0 - ;; (load) _arguments $(__docker_arguments) \ $opts_help \ @@ -2070,9 +2048,6 @@ __docker_subcommand() { $opts_help \ "($help -)1:server: " && ret=0 ;; - (logs) - __docker_container_subcommand && ret=0 - ;; (network) local curcontext="$curcontext" state _arguments $(__docker_arguments) \ @@ -2107,9 +2082,6 @@ __docker_subcommand() { ;; esac ;; - (pause|unpause) - __docker_container_subcommand && ret=0 - ;; (plugin) local curcontext="$curcontext" state _arguments $(__docker_arguments) \ @@ -2127,9 +2099,6 @@ __docker_subcommand() { ;; esac ;; - (port) - __docker_container_subcommand && ret=0 - ;; (ps) words[1]='ls' __docker_container_subcommand && ret=0 @@ -2147,15 +2116,6 @@ __docker_subcommand() { "($help)--disable-content-trust[Skip image signing]" \ "($help -): :__docker_images" && ret=0 ;; - (rename) - __docker_container_subcommand && ret=0 - ;; - (restart) - __docker_container_subcommand && ret=0 - ;; - (rm) - __docker_container_subcommand && ret=0 - ;; (rmi) _arguments $(__docker_arguments) \ $opts_help \ @@ -2163,9 +2123,6 @@ __docker_subcommand() { "($help)--no-prune[Do not delete untagged parents]" \ "($help -)*: :__docker_images" && ret=0 ;; - (run) - __docker_container_subcommand && ret=0 - ;; (save) _arguments $(__docker_arguments) \ $opts_help \ @@ -2203,15 +2160,6 @@ __docker_subcommand() { ;; esac ;; - (start) - __docker_container_subcommand && ret=0 - ;; - (stats) - __docker_container_subcommand && ret=0 - ;; - (stop) - __docker_container_subcommand && ret=0 - ;; (swarm) local curcontext="$curcontext" state _arguments $(__docker_arguments) \ @@ -2235,12 +2183,6 @@ __docker_subcommand() { "($help -):source:__docker_images"\ "($help -):destination:__docker_repositories_with_tags" && ret=0 ;; - (top) - __docker_container_subcommand && ret=0 - ;; - (update) - __docker_container_subcommand && ret=0 - ;; (volume) local curcontext="$curcontext" state _arguments $(__docker_arguments) \ @@ -2258,9 +2200,6 @@ __docker_subcommand() { ;; esac ;; - (wait) - __docker_container_subcommand && ret=0 - ;; (help) _arguments $(__docker_arguments) ":subcommand:__docker_commands" && ret=0 ;;