From 2a44da973200258cf80fb9693a4e84211ee3a3d9 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:15:23 +0100 Subject: [PATCH 01/14] Rename zsh images & log complete functions Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 66 +++++++++++++++++----------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index d113abe019..143187f3c7 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -149,25 +149,27 @@ __docker_complete_info_plugins() { return ret } -__docker_images() { +__docker_complete_images() { [[ $PREFIX = -* ]] && return 1 integer ret=1 declare -a images images=(${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}[2,-1]}/(#b)([^ ]##) ##([^ ]##) ##([^ ]##)*/${match[3]}:${(r:15:: :::)match[2]} in ${match[1]}}) _describe -t docker-images "images" images && ret=0 - __docker_repositories_with_tags && ret=0 + __docker_complete_repositories_with_tags && ret=0 return ret } -__docker_repositories() { +__docker_complete_repositories() { [[ $PREFIX = -* ]] && return 1 + integer ret=1 declare -a repos repos=(${${${(f)${:-"$(_call_program commands docker $docker_options images)"$'\n'}}%% *}[2,-1]}) repos=(${repos#}) - _describe -t docker-repos "repositories" repos + _describe -t docker-repos "repositories" repos && ret=0 + return ret } -__docker_repositories_with_tags() { +__docker_complete_repositories_with_tags() { [[ $PREFIX = -* ]] && return 1 integer ret=1 declare -a repos onlyrepos matched @@ -244,7 +246,7 @@ __docker_get_log_options() { return ret } -__docker_log_drivers() { +__docker_complete_log_drivers() { [[ $PREFIX = -* ]] && return 1 integer ret=1 drivers=(awslogs etwlogs fluentd gcplogs gelf journald json-file none splunk syslog) @@ -252,7 +254,7 @@ __docker_log_drivers() { return ret } -__docker_log_options() { +__docker_complete_log_options() { [[ $PREFIX = -* ]] && return 1 integer ret=1 @@ -327,7 +329,7 @@ __docker_complete_ps_filters() { if compset -P '*='; then case "${${words[-1]%=*}#*=}" in (ancestor) - __docker_images && ret=0 + __docker_complete_images && ret=0 ;; (before|since) __docker_complete_containers && ret=0 @@ -402,7 +404,7 @@ __docker_complete_images_filters() { if compset -P '*='; then case "${${words[-1]%=*}#*=}" in (before|since) - __docker_images && ret=0 + __docker_complete_images && ret=0 ;; (dangling) _describe -t boolean-filter-opts "filter options" boolean_opts && ret=0 @@ -448,7 +450,7 @@ __docker_complete_events_filter() { _describe -t event-filter-opts "event filter options" event_opts && ret=0 ;; (image) - __docker_images && ret=0 + __docker_complete_images && ret=0 ;; (network) __docker_networks && ret=0 @@ -545,8 +547,8 @@ __docker_container_subcommand() { "($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)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" + "($help)*--log-opt=[Log driver specific options]:log driver options:__docker_complete_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: " @@ -608,7 +610,7 @@ __docker_container_subcommand() { "($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 + "($help -): :__docker_complete_repositories_with_tags" && ret=0 ;; (cp) local state @@ -633,7 +635,7 @@ __docker_container_subcommand() { $opts_help \ $opts_create_run \ $opts_create_run_update \ - "($help -): :__docker_images" \ + "($help -): :__docker_complete_images" \ "($help -):command: _command_names -e" \ "($help -)*::arguments: _normal" && ret=0 case $state in @@ -777,7 +779,7 @@ __docker_container_subcommand() { "($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 -): :__docker_complete_images" \ "($help -):command: _command_names -e" \ "($help -)*::arguments: _normal" && ret=0 case $state in @@ -1490,8 +1492,8 @@ __docker_service_subcommand() { "($help)*--label=[Service labels]:label: " "($help)--limit-cpu=[Limit CPUs]:value: " "($help)--limit-memory=[Limit Memory]:value: " - "($help)--log-driver=[Logging driver for service]:logging driver:__docker_log_drivers" - "($help)*--log-opt=[Logging driver options]:log driver options:__docker_log_options" + "($help)--log-driver=[Logging driver for service]:logging driver:__docker_complete_log_drivers" + "($help)*--log-opt=[Logging driver options]:log driver options:__docker_complete_log_options" "($help)*--mount=[Attach a filesystem mount to the service]:mount: " "($help)*--network=[Network attachments]:network: " "($help)--no-healthcheck[Disable any container-specified HEALTHCHECK]" @@ -1523,7 +1525,7 @@ __docker_service_subcommand() { "($help)*--env-file=[Read environment variables from a file]:environment file:_files" \ "($help)--mode=[Service Mode]:mode:(global replicated)" \ "($help)--name=[Service name]:name: " \ - "($help -): :__docker_images" \ + "($help -): :__docker_complete_images" \ "($help -):command: _command_names -e" \ "($help -)*::arguments: _normal" && ret=0 ;; @@ -1588,7 +1590,7 @@ __docker_service_subcommand() { "($help)--force[Force update]" \ "($help)*--group-add=[Add additional supplementary user groups to the container]:group:_groups" \ "($help)*--group-rm=[Remove previously added supplementary user groups from the container]:group:_groups" \ - "($help)--image=[Service image tag]:image:__docker_repositories" \ + "($help)--image=[Service image tag]:image:__docker_complete_repositories" \ "($help)--rollback[Rollback to previous specification]" \ "($help -)1:service:__docker_complete_services" && ret=0 ;; @@ -1852,7 +1854,7 @@ __docker_subcommand() { "($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 -t --tag)*"{-t=,--tag=}"[Repository, name and tag for the image]: :__docker_complete_repositories_with_tags" \ "($help)*--ulimit=[ulimit options]:ulimit: " \ "($help)--userns=[Container user namespace]:user namespace:(host)" \ "($help -):path or URL:_directories" && ret=0 @@ -1915,8 +1917,8 @@ __docker_subcommand() { "($help -l --log-level)"{-l=,--log-level=}"[Logging level]:level:(debug info warn error fatal)" \ "($help)*--label=[Key=value labels]:label: " \ "($help)--live-restore[Enable live restore of docker when containers are still running]" \ - "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_log_drivers" \ - "($help)*--log-opt=[Default log driver options for containers]:log driver options:__docker_log_options" \ + "($help)--log-driver=[Default driver for container logs]:logging driver:__docker_complete_log_drivers" \ + "($help)*--log-opt=[Default log driver options for containers]:log driver options:__docker_complete_log_options" \ "($help)--max-concurrent-downloads[Set the max concurrent downloads for each pull]" \ "($help)--max-concurrent-uploads[Set the max concurrent uploads for each push]" \ "($help)--mtu=[Network MTU]:mtu:(0 576 1420 1500 9000)" \ @@ -1977,7 +1979,7 @@ __docker_subcommand() { "($help -H --human)"{-H,--human}"[Print sizes and dates in human readable format]" \ "($help)--no-trunc[Do not truncate output]" \ "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ - "($help -)*: :__docker_images" && ret=0 + "($help -)*: :__docker_complete_images" && ret=0 ;; (images) _arguments $(__docker_arguments) \ @@ -1988,7 +1990,7 @@ __docker_subcommand() { "($help)--format=[Pretty-print images using a Go template]:template: " \ "($help)--no-trunc[Do not truncate output]" \ "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ - "($help -): :__docker_repositories" && ret=0 + "($help -): :__docker_complete_repositories" && ret=0 case $state in (filter-options) @@ -2002,7 +2004,7 @@ __docker_subcommand() { "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ "($help -m --message)"{-m=,--message=}"[Commit message for imported image]:message: " \ "($help -):URL:(- http:// file://)" \ - "($help -): :__docker_repositories_with_tags" && ret=0 + "($help -): :__docker_complete_repositories_with_tags" && ret=0 ;; (info|version) _arguments $(__docker_arguments) \ @@ -2023,9 +2025,9 @@ __docker_subcommand() { if [[ ${words[(r)--type=container]} == --type=container ]]; then __docker_complete_containers && ret=0 elif [[ ${words[(r)--type=image]} == --type=image ]]; then - __docker_images && ret=0 + __docker_complete_images && ret=0 else - __docker_images && __docker_complete_containers && ret=0 + __docker_complete_images && __docker_complete_containers && ret=0 fi ;; esac @@ -2114,20 +2116,20 @@ __docker_subcommand() { _arguments $(__docker_arguments) \ $opts_help \ "($help)--disable-content-trust[Skip image signing]" \ - "($help -): :__docker_images" && ret=0 + "($help -): :__docker_complete_images" && ret=0 ;; (rmi) _arguments $(__docker_arguments) \ $opts_help \ "($help -f --force)"{-f,--force}"[Force removal]" \ "($help)--no-prune[Do not delete untagged parents]" \ - "($help -)*: :__docker_images" && ret=0 + "($help -)*: :__docker_complete_images" && ret=0 ;; (save) _arguments $(__docker_arguments) \ $opts_help \ "($help -o --output)"{-o=,--output=}"[Write to file]:file:_files" \ - "($help -)*: :__docker_images" && ret=0 + "($help -)*: :__docker_complete_images" && ret=0 ;; (search) _arguments $(__docker_arguments) \ @@ -2180,8 +2182,8 @@ __docker_subcommand() { (tag) _arguments $(__docker_arguments) \ $opts_help \ - "($help -):source:__docker_images"\ - "($help -):destination:__docker_repositories_with_tags" && ret=0 + "($help -):source:__docker_complete_images"\ + "($help -):destination:__docker_complete_repositories_with_tags" && ret=0 ;; (volume) local curcontext="$curcontext" state From 53a56990c43985f1bacc0c87d92e7cb7743475ae Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:37:26 +0100 Subject: [PATCH 02/14] Add zsh completion for 'docker image' subcommands Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 94 ++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 143187f3c7..a971aa140c 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -865,6 +865,83 @@ __docker_container_subcommand() { # EO container +# BO image + +__docker_image_commands() { + local -a _docker_image_subcommands + _docker_image_subcommands=( + "build:Build an image from a Dockerfile" + "history:Show the history of an image" + "import:Import the contents from a tarball to create a filesystem image" + "inspect:Display detailed information on one or more images" + "load:Load an image from a tar archive or STDIN" + "ls:List images" + "prune:Remove unused images" + "pull:Pull an image or a repository from a registry" + "push:Push an image or a repository to a registry" + "rm:Remove one or more images" + "save:Save one or more images to a tar archive (streamed to STDOUT by default)" + "tag:Tag an image into a repository" + ) + _describe -t docker-image-commands "docker image command" _docker_image_subcommands +} + +__docker_image_subcommand() { + local -a _command_args opts_help + local expl help="--help" + integer ret=1 + + opts_help=("(: -)--help[Print usage]") + + case "$words[1]" in + (build) + __docker_subcommand && ret=0 + ;; + (history) + __docker_subcommand && ret=0 + ;; + (import) + __docker_subcommand && ret=0 + ;; + (inspect) + __docker_subcommand && ret=0 + ;; + (load) + __docker_subcommand && ret=0 + ;; + (ls|list) + words[1]='images' + __docker_subcommand && ret=0 + ;; + (prune) + # @TODO + ;; + (pull) + __docker_subcommand && ret=0 + ;; + (push) + __docker_subcommand && ret=0 + ;; + (rm) + words[1]='rmi' + __docker_subcommand && ret=0 + ;; + (save) + __docker_subcommand && ret=0 + ;; + (tag) + __docker_subcommand && ret=0 + ;; + (help) + _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 + ;; + esac + + return ret +} + +# EO image + # BO network __docker_network_complete_ls_filters() { @@ -1981,6 +2058,23 @@ __docker_subcommand() { "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ "($help -)*: :__docker_complete_images" && ret=0 ;; + (image) + local curcontext="$curcontext" state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -): :->command" \ + "($help -)*:: :->option-or-argument" && ret=0 + + case $state in + (command) + __docker_image_commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-${words[-1]}: + __docker_image_subcommand && ret=0 + ;; + esac + ;; (images) _arguments $(__docker_arguments) \ $opts_help \ From d3305a17e11233451ed79cb6f2f0f6c8a9b03b94 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:41:28 +0100 Subject: [PATCH 03/14] Move zsh completion logic to new subcommand: build Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 58 +++++++++++++++++----------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index a971aa140c..e2fa5e52e6 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -895,7 +895,34 @@ __docker_image_subcommand() { case "$words[1]" in (build) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($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_complete_repositories_with_tags" \ + "($help)*--ulimit=[ulimit options]:ulimit: " \ + "($help)--userns=[Container user namespace]:user namespace:(host)" \ + "($help -):path or URL:_directories" && ret=0 ;; (history) __docker_subcommand && ret=0 @@ -1907,34 +1934,7 @@ __docker_subcommand() { __docker_container_subcommand && ret=0 ;; (build) - _arguments $(__docker_arguments) \ - $opts_help \ - "($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_complete_repositories_with_tags" \ - "($help)*--ulimit=[ulimit options]:ulimit: " \ - "($help)--userns=[Container user namespace]:user namespace:(host)" \ - "($help -):path or URL:_directories" && ret=0 + __docker_image_subcommand && ret=0 ;; (container) local curcontext="$curcontext" state From 2014e787309d3eb1fcf26ffd324deef2c2177d7a Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:43:20 +0100 Subject: [PATCH 04/14] Move zsh completion logic to new subcommand: history 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 e2fa5e52e6..a86aeb118f 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -925,7 +925,12 @@ __docker_image_subcommand() { "($help -):path or URL:_directories" && ret=0 ;; (history) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -H --human)"{-H,--human}"[Print sizes and dates in human readable format]" \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ + "($help -)*: :__docker_complete_images" && ret=0 ;; (import) __docker_subcommand && ret=0 @@ -2051,12 +2056,7 @@ __docker_subcommand() { "($help)--format=[Format the output using the given go template]:template: " && ret=0 ;; (history) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -H --human)"{-H,--human}"[Print sizes and dates in human readable format]" \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ - "($help -)*: :__docker_complete_images" && ret=0 + __docker_image_subcommand && ret=0 ;; (image) local curcontext="$curcontext" state From a4656e46f77c11aa27fa8e1f37398ea9b8c4738c Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:44:37 +0100 Subject: [PATCH 05/14] Move zsh completion logic to new subcommand: import 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 a86aeb118f..2e61686073 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -933,7 +933,12 @@ __docker_image_subcommand() { "($help -)*: :__docker_complete_images" && ret=0 ;; (import) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ + "($help -m --message)"{-m=,--message=}"[Commit message for imported image]:message: " \ + "($help -):URL:(- http:// file://)" \ + "($help -): :__docker_complete_repositories_with_tags" && ret=0 ;; (inspect) __docker_subcommand && ret=0 @@ -2093,12 +2098,7 @@ __docker_subcommand() { esac ;; (import) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)*"{-c=,--change=}"[Apply Dockerfile instruction to the created image]:Dockerfile:_files" \ - "($help -m --message)"{-m=,--message=}"[Commit message for imported image]:message: " \ - "($help -):URL:(- http:// file://)" \ - "($help -): :__docker_complete_repositories_with_tags" && ret=0 + __docker_image_subcommand && ret=0 ;; (info|version) _arguments $(__docker_arguments) \ From d0014299b420191ceef627ed8dda809914b9ff4c Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:52:45 +0100 Subject: [PATCH 06/14] Add zsh completion logic to new subcommand: inspect Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 2e61686073..45a0627032 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -941,7 +941,10 @@ __docker_image_subcommand() { "($help -): :__docker_complete_repositories_with_tags" && 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 -)*:images:__docker_complete_images" && ret=0 ;; (load) __docker_subcommand && ret=0 From c308befdc0f8afa21c0ee7048cec1e5eca9c8da0 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:53:53 +0100 Subject: [PATCH 07/14] Move zsh completion logic to new subcommand: load 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 45a0627032..b4f4789c98 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -947,7 +947,10 @@ __docker_image_subcommand() { "($help -)*:images:__docker_complete_images" && ret=0 ;; (load) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -i --input)"{-i=,--input=}"[Read from tar archive file]:archive file:_files -g \"*.((tar|TAR)(.gz|.GZ|.Z|.bz2|.lzma|.xz|)|(tbz|tgz|txz))(-.)\"" \ + "($help -q --quiet)"{-q,--quiet}"[Suppress the load output]" && ret=0 ;; (ls|list) words[1]='images' @@ -2130,10 +2133,7 @@ __docker_subcommand() { esac ;; (load) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -i --input)"{-i=,--input=}"[Read from tar archive file]:archive file:_files -g \"*.((tar|TAR)(.gz|.GZ|.Z|.bz2|.lzma|.xz|)|(tbz|tgz|txz))(-.)\"" \ - "($help -q --quiet)"{-q,--quiet}"[Suppress the load output]" && ret=0 + __docker_image_subcommand && ret=0 ;; (login) _arguments $(__docker_arguments) \ From c333821334db2c8c1d8e4af73176ec8cdefe4643 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:55:27 +0100 Subject: [PATCH 08/14] Move zsh completion logic to new subcommand: ls Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index b4f4789c98..e7b3a04db0 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -953,8 +953,21 @@ __docker_image_subcommand() { "($help -q --quiet)"{-q,--quiet}"[Suppress the load output]" && ret=0 ;; (ls|list) - words[1]='images' - __docker_subcommand && ret=0 + local state + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all)"{-a,--all}"[Show all images]" \ + "($help)--digests[Show digests]" \ + "($help)*"{-f=,--filter=}"[Filter values]:filter:->filter-options" \ + "($help)--format=[Pretty-print images using a Go template]:template: " \ + "($help)--no-trunc[Do not truncate output]" \ + "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ + "($help -): :__docker_complete_repositories" && ret=0 + case $state in + (filter-options) + __docker_complete_images_filters && ret=0 + ;; + esac ;; (prune) # @TODO @@ -2087,21 +2100,8 @@ __docker_subcommand() { esac ;; (images) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all)"{-a,--all}"[Show all images]" \ - "($help)--digests[Show digests]" \ - "($help)*"{-f=,--filter=}"[Filter values]:filter:->filter-options" \ - "($help)--format=[Pretty-print images using a Go template]:template: " \ - "($help)--no-trunc[Do not truncate output]" \ - "($help -q --quiet)"{-q,--quiet}"[Only show numeric IDs]" \ - "($help -): :__docker_complete_repositories" && ret=0 - - case $state in - (filter-options) - __docker_complete_images_filters && ret=0 - ;; - esac + words[1]='ls' + __docker_image_subcommand && ret=0 ;; (import) __docker_image_subcommand && ret=0 From 102742a3cdc3633c8adb28f4f6cccd5028b46039 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:56:38 +0100 Subject: [PATCH 09/14] Move zsh completion logic to new subcommand: pull Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index e7b3a04db0..df2c1cddc3 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -973,7 +973,11 @@ __docker_image_subcommand() { # @TODO ;; (pull) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -a --all-tags)"{-a,--all-tags}"[Download all tagged images]" \ + "($help)--disable-content-trust[Skip image verification]" \ + "($help -):name:__docker_search" && ret=0 ;; (push) __docker_subcommand && ret=0 @@ -2203,11 +2207,7 @@ __docker_subcommand() { __docker_container_subcommand && ret=0 ;; (pull) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -a --all-tags)"{-a,--all-tags}"[Download all tagged images]" \ - "($help)--disable-content-trust[Skip image verification]" \ - "($help -):name:__docker_search" && ret=0 + __docker_image_subcommand && ret=0 ;; (push) _arguments $(__docker_arguments) \ From 17cdc95a199aa8543aaa90359aa461ad5bf4240d Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 21:58:28 +0100 Subject: [PATCH 10/14] Move zsh completion logic to new subcommand: push 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 df2c1cddc3..4f621a5031 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -980,7 +980,10 @@ __docker_image_subcommand() { "($help -):name:__docker_search" && ret=0 ;; (push) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help)--disable-content-trust[Skip image signing]" \ + "($help -): :__docker_complete_images" && ret=0 ;; (rm) words[1]='rmi' @@ -2210,10 +2213,7 @@ __docker_subcommand() { __docker_image_subcommand && ret=0 ;; (push) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help)--disable-content-trust[Skip image signing]" \ - "($help -): :__docker_complete_images" && ret=0 + __docker_image_subcommand && ret=0 ;; (rmi) _arguments $(__docker_arguments) \ From e5c98f3887b1b6e2a0deb11bc5d371d5300ca2aa Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 22:02:32 +0100 Subject: [PATCH 11/14] Move zsh completion logic to new subcommand: rm 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 4f621a5031..1cbe460bff 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -986,8 +986,11 @@ __docker_image_subcommand() { "($help -): :__docker_complete_images" && ret=0 ;; (rm) - words[1]='rmi' - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -f --force)"{-f,--force}"[Force removal]" \ + "($help)--no-prune[Do not delete untagged parents]" \ + "($help -)*: :__docker_complete_images" && ret=0 ;; (save) __docker_subcommand && ret=0 @@ -2216,11 +2219,8 @@ __docker_subcommand() { __docker_image_subcommand && ret=0 ;; (rmi) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -f --force)"{-f,--force}"[Force removal]" \ - "($help)--no-prune[Do not delete untagged parents]" \ - "($help -)*: :__docker_complete_images" && ret=0 + words[1]='rm' + __docker_image_subcommand && ret=0 ;; (save) _arguments $(__docker_arguments) \ From d2af96342dcbc36dda58a1d1aeaa24072c7a8ee8 Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 22:03:55 +0100 Subject: [PATCH 12/14] Move zsh completion logic to new subcommand: save 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 1cbe460bff..e7ef5f71b4 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -993,7 +993,10 @@ __docker_image_subcommand() { "($help -)*: :__docker_complete_images" && ret=0 ;; (save) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -o --output)"{-o=,--output=}"[Write to file]:file:_files" \ + "($help -)*: :__docker_complete_images" && ret=0 ;; (tag) __docker_subcommand && ret=0 @@ -2223,10 +2226,7 @@ __docker_subcommand() { __docker_image_subcommand && ret=0 ;; (save) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -o --output)"{-o=,--output=}"[Write to file]:file:_files" \ - "($help -)*: :__docker_complete_images" && ret=0 + __docker_image_subcommand && ret=0 ;; (search) _arguments $(__docker_arguments) \ From cc879af088f6172f7b94fcfb94ef18716cd0c79f Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 22:07:25 +0100 Subject: [PATCH 13/14] Move zsh completion logic to new subcommand: tag 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 e7ef5f71b4..3bde12e371 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -999,7 +999,10 @@ __docker_image_subcommand() { "($help -)*: :__docker_complete_images" && ret=0 ;; (tag) - __docker_subcommand && ret=0 + _arguments $(__docker_arguments) \ + $opts_help \ + "($help -):source:__docker_complete_images"\ + "($help -):destination:__docker_complete_repositories_with_tags" && ret=0 ;; (help) _arguments $(__docker_arguments) ":subcommand:__docker_container_commands" && ret=0 @@ -2277,10 +2280,7 @@ __docker_subcommand() { esac ;; (tag) - _arguments $(__docker_arguments) \ - $opts_help \ - "($help -):source:__docker_complete_images"\ - "($help -):destination:__docker_complete_repositories_with_tags" && ret=0 + __docker_image_subcommand && ret=0 ;; (volume) local curcontext="$curcontext" state From 29367c7e684d1178612b36dcc550c354bf15b68d Mon Sep 17 00:00:00 2001 From: Steve Durrheimer Date: Sun, 30 Oct 2016 22:11:59 +0100 Subject: [PATCH 14/14] Cleanup after moving all zsh completion logics for the new image command Signed-off-by: Steve Durrheimer --- contrib/completion/zsh/_docker | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker index 3bde12e371..dba634fa50 100644 --- a/contrib/completion/zsh/_docker +++ b/contrib/completion/zsh/_docker @@ -1978,7 +1978,7 @@ __docker_subcommand() { (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) + (build|history|import|load|pull|push|save|tag) __docker_image_subcommand && ret=0 ;; (container) @@ -2095,9 +2095,6 @@ __docker_subcommand() { "($help)--until=[Events created until this timestamp]:timestamp: " \ "($help)--format=[Format the output using the given go template]:template: " && ret=0 ;; - (history) - __docker_image_subcommand && ret=0 - ;; (image) local curcontext="$curcontext" state _arguments $(__docker_arguments) \ @@ -2119,9 +2116,6 @@ __docker_subcommand() { words[1]='ls' __docker_image_subcommand && ret=0 ;; - (import) - __docker_image_subcommand && ret=0 - ;; (info|version) _arguments $(__docker_arguments) \ $opts_help \ @@ -2148,9 +2142,6 @@ __docker_subcommand() { ;; esac ;; - (load) - __docker_image_subcommand && ret=0 - ;; (login) _arguments $(__docker_arguments) \ $opts_help \ @@ -2218,19 +2209,10 @@ __docker_subcommand() { words[1]='ls' __docker_container_subcommand && ret=0 ;; - (pull) - __docker_image_subcommand && ret=0 - ;; - (push) - __docker_image_subcommand && ret=0 - ;; (rmi) words[1]='rm' __docker_image_subcommand && ret=0 ;; - (save) - __docker_image_subcommand && ret=0 - ;; (search) _arguments $(__docker_arguments) \ $opts_help \ @@ -2279,9 +2261,6 @@ __docker_subcommand() { ;; esac ;; - (tag) - __docker_image_subcommand && ret=0 - ;; (volume) local curcontext="$curcontext" state _arguments $(__docker_arguments) \