From 945515f37390139f22896590c3a9fcbc3f82859e Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Sat, 22 Oct 2016 08:54:53 -0700 Subject: [PATCH 01/12] Add bash completion for new `docker image` command family Signed-off-by: Harald Albers Upstream-commit: 33910a89b930bfba2f85188260a9d105d0b96c50 Component: engine --- .../engine/contrib/completion/bash/docker | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index c4b79962c6..9687df0506 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2028,6 +2028,106 @@ _docker_history() { esac } + +_docker_image() { + local subcommands=" + build + history + import + inspect + load + ls + prune + pull + push + rm + save + tag + " + local aliases=" + images + list + remove + rmi + " + __docker_subcommands "$subcommands $aliases" && return + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--help" -- "$cur" ) ) + ;; + *) + COMPREPLY=( $( compgen -W "$subcommands" -- "$cur" ) ) + ;; + esac +} + +_docker_image_build() { + _docker_build +} + +_docker_image_history() { + _docker_history +} + +_docker_image_images() { + _docker_image_ls +} + +_docker_image_import() { + _docker_import +} + +_docker_image_inspect() { + _docker_inspect +} + +_docker_image_load() { + _docker_load +} + +_docker_image_list() { + _docker_image_ls +} + +_docker_image_ls() { + _docker_images +} + +# TODO new command +_docker_image_prune() { + : +} + +_docker_image_pull() { + _docker_pull +} + +_docker_image_push() { + _docker_push +} + +_docker_image_remove() { + _docker_image_rm +} + +_docker_image_rm() { + _docker_rmi +} + +_docker_image_rmi() { + _docker_image_rm +} + +_docker_image_save() { + _docker_save +} + +_docker_image_tag() { + _docker_tag +} + + _docker_images() { local key=$(__docker_map_key_of_current_option '--filter|-f') case "$key" in @@ -3178,6 +3278,7 @@ _docker() { exec export history + image images import info From f0c1f13e3138cbb94be6dcdf48c78c41b5fc7d91 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Sat, 22 Oct 2016 09:24:47 -0700 Subject: [PATCH 02/12] Move bash completion logic to new subcommand: build Signed-off-by: Harald Albers Upstream-commit: db31883a92e0189e2fd85f36cdbc48a21d83f788 Component: engine --- .../engine/contrib/completion/bash/docker | 132 +++++++++--------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 9687df0506..072b7cc50a 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -825,71 +825,7 @@ _docker_attach() { } _docker_build() { - local options_with_args=" - --build-arg - --cgroup-parent - --cpuset-cpus - --cpuset-mems - --cpu-shares -c - --cpu-period - --cpu-quota - --file -f - --isolation - --label - --memory -m - --memory-swap - --shm-size - --tag -t - --ulimit - " - - local boolean_options=" - --compress - --disable-content-trust=false - --force-rm - --help - --no-cache - --pull - --quiet -q - --rm - " - - local all_options="$options_with_args $boolean_options" - - case "$prev" in - --build-arg) - COMPREPLY=( $( compgen -e -- "$cur" ) ) - __docker_nospace - return - ;; - --file|-f) - _filedir - return - ;; - --isolation) - __docker_complete_isolation - return - ;; - --tag|-t) - __docker_complete_image_repos_and_tags - return - ;; - $(__docker_to_extglob "$options_with_args") ) - return - ;; - esac - - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "$all_options" -- "$cur" ) ) - ;; - *) - local counter=$( __docker_pos_first_nonflag $( __docker_to_alternatives "$options_with_args" ) ) - if [ $cword -eq $counter ]; then - _filedir -d - fi - ;; - esac + _docker_image_build } @@ -2063,7 +1999,71 @@ _docker_image() { } _docker_image_build() { - _docker_build + local options_with_args=" + --build-arg + --cgroup-parent + --cpuset-cpus + --cpuset-mems + --cpu-shares -c + --cpu-period + --cpu-quota + --file -f + --isolation + --label + --memory -m + --memory-swap + --shm-size + --tag -t + --ulimit + " + + local boolean_options=" + --compress + --disable-content-trust=false + --force-rm + --help + --no-cache + --pull + --quiet -q + --rm + " + + local all_options="$options_with_args $boolean_options" + + case "$prev" in + --build-arg) + COMPREPLY=( $( compgen -e -- "$cur" ) ) + __docker_nospace + return + ;; + --file|-f) + _filedir + return + ;; + --isolation) + __docker_complete_isolation + return + ;; + --tag|-t) + __docker_complete_image_repos_and_tags + return + ;; + $(__docker_to_extglob "$options_with_args") ) + return + ;; + esac + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "$all_options" -- "$cur" ) ) + ;; + *) + local counter=$( __docker_pos_first_nonflag $( __docker_to_alternatives "$options_with_args" ) ) + if [ $cword -eq $counter ]; then + _filedir -d + fi + ;; + esac } _docker_image_history() { From 5beb4da00733021fecb96e88a750f2ae6aaa7c07 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Sat, 22 Oct 2016 09:26:07 -0700 Subject: [PATCH 03/12] Move bash completion logic to new subcommand: history Signed-off-by: Harald Albers Upstream-commit: 9059b9532e96412e84d59823765aa19095a5bd84 Component: engine --- .../engine/contrib/completion/bash/docker | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 072b7cc50a..6b25e7a07f 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -1951,17 +1951,7 @@ _docker_help() { } _docker_history() { - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--help --human=false -H=false --no-trunc --quiet -q" -- "$cur" ) ) - ;; - *) - local counter=$(__docker_pos_first_nonflag) - if [ $cword -eq $counter ]; then - __docker_complete_images - fi - ;; - esac + _docker_image_history } @@ -2067,7 +2057,17 @@ _docker_image_build() { } _docker_image_history() { - _docker_history + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--help --human=false -H=false --no-trunc --quiet -q" -- "$cur" ) ) + ;; + *) + local counter=$(__docker_pos_first_nonflag) + if [ $cword -eq $counter ]; then + __docker_complete_images + fi + ;; + esac } _docker_image_images() { From b64eef318105ec9af194c182046f6993b3ce2904 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Sat, 22 Oct 2016 09:28:25 -0700 Subject: [PATCH 04/12] Move bash completion logic to new subcommand: import Signed-off-by: Harald Albers Upstream-commit: e93298650d052c7ed29148a3012f4b710620af2f Component: engine --- .../engine/contrib/completion/bash/docker | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 6b25e7a07f..51195a6b8c 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2075,7 +2075,29 @@ _docker_image_images() { } _docker_image_import() { - _docker_import + case "$prev" in + --change|-c|--message|-m) + return + ;; + esac + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--change -c --help --message -m" -- "$cur" ) ) + ;; + *) + local counter=$(__docker_pos_first_nonflag '--change|-c|--message|-m') + if [ $cword -eq $counter ]; then + return + fi + (( counter++ )) + + if [ $cword -eq $counter ]; then + __docker_complete_image_repos_and_tags + return + fi + ;; + esac } _docker_image_inspect() { @@ -2175,29 +2197,7 @@ _docker_images() { } _docker_import() { - case "$prev" in - --change|-c|--message|-m) - return - ;; - esac - - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--change -c --help --message -m" -- "$cur" ) ) - ;; - *) - local counter=$(__docker_pos_first_nonflag '--change|-c|--message|-m') - if [ $cword -eq $counter ]; then - return - fi - (( counter++ )) - - if [ $cword -eq $counter ]; then - __docker_complete_image_repos_and_tags - return - fi - ;; - esac + _docker_image_import } _docker_info() { From 73e8ea82772535fae891433a87885aba22c88973 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Sat, 22 Oct 2016 10:03:43 -0700 Subject: [PATCH 05/12] Delegate bash completion for `docker {container,image} inspect` to parameterized function In #23614 `docker inspect` was semantically enhanced to inspect "everything". Therefore moving its logic to `_docker_container_inspect` was not correct. This commit moves it back to its original top-level location (`_docker_inspect`) so that it can be called by `_docker_{container,image}_inspect` and others (will be added in follow-up PRs). Parameterization was added in order to get caller-specific behavior. Signed-off-by: Harald Albers Upstream-commit: 9eb1f554028aab84beaed0d5ff6ecbcbd3848594 Component: engine --- .../engine/contrib/completion/bash/docker | 73 +++++++++++-------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 51195a6b8c..df8a1e3f7d 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -1021,34 +1021,7 @@ _docker_container_export() { } _docker_container_inspect() { - case "$prev" in - --format|-f) - return - ;; - --type) - COMPREPLY=( $( compgen -W "image container" -- "$cur" ) ) - return - ;; - - esac - - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--format -f --help --size -s --type" -- "$cur" ) ) - ;; - *) - case $(__docker_value_of_option --type) in - '') - __docker_complete_containers_and_images - ;; - container) - __docker_complete_containers_all - ;; - image) - __docker_complete_images - ;; - esac - esac + _docker_inspect --type container } _docker_container_kill() { @@ -2101,7 +2074,7 @@ _docker_image_import() { } _docker_image_inspect() { - _docker_inspect + _docker_inspect --type image } _docker_image_load() { @@ -2215,7 +2188,47 @@ _docker_info() { } _docker_inspect() { - _docker_container_inspect + local type + + if [ "$1" = "--type" ] ; then + type="$2" + else + type=$(__docker_value_of_option --type) + fi + + case "$prev" in + --format|-f) + return + ;; + --type) + if [ -z "$type" ] ; then + COMPREPLY=( $( compgen -W "image container" -- "$cur" ) ) + fi + return + ;; + esac + + case "$cur" in + -*) + local options="--format -f --help --size -s" + if [ -z "$type" ] ; then + options+=" --type" + fi + COMPREPLY=( $( compgen -W "$options" -- "$cur" ) ) + ;; + *) + case "$type" in + '') + __docker_complete_containers_and_images + ;; + container) + __docker_complete_containers_all + ;; + image) + __docker_complete_images + ;; + esac + esac } _docker_kill() { From af1d3eba23b56ef30725f07d31b6e865e1b69723 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Sat, 22 Oct 2016 10:59:39 -0700 Subject: [PATCH 06/12] Move bash completion logic to new subcommand: load Signed-off-by: Harald Albers Upstream-commit: 75aede3a7c23385a7cc44c81710a6e790199870e Component: engine --- .../engine/contrib/completion/bash/docker | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index df8a1e3f7d..1439d0b38b 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2078,7 +2078,18 @@ _docker_image_inspect() { } _docker_image_load() { - _docker_load + case "$prev" in + --input|-i) + _filedir + return + ;; + esac + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--help --input -i --quiet -q" -- "$cur" ) ) + ;; + esac } _docker_image_list() { @@ -2236,18 +2247,7 @@ _docker_kill() { } _docker_load() { - case "$prev" in - --input|-i) - _filedir - return - ;; - esac - - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--help --input -i --quiet -q" -- "$cur" ) ) - ;; - esac + _docker_image_load } _docker_login() { From 915231aaf9325bd1d39c75a0c8ba748150994dea Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 24 Oct 2016 09:25:17 -0700 Subject: [PATCH 07/12] Move bash completion logic to new subcommand: images Signed-off-by: Harald Albers Upstream-commit: df486631bcaff7cb54f5e326f687085724e8de79 Component: engine --- .../engine/contrib/completion/bash/docker | 76 +++++++++---------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 1439d0b38b..ef07a7f7b2 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2097,44 +2097,6 @@ _docker_image_list() { } _docker_image_ls() { - _docker_images -} - -# TODO new command -_docker_image_prune() { - : -} - -_docker_image_pull() { - _docker_pull -} - -_docker_image_push() { - _docker_push -} - -_docker_image_remove() { - _docker_image_rm -} - -_docker_image_rm() { - _docker_rmi -} - -_docker_image_rmi() { - _docker_image_rm -} - -_docker_image_save() { - _docker_save -} - -_docker_image_tag() { - _docker_tag -} - - -_docker_images() { local key=$(__docker_map_key_of_current_option '--filter|-f') case "$key" in before) @@ -2180,6 +2142,44 @@ _docker_images() { esac } +# TODO new command +_docker_image_prune() { + : +} + +_docker_image_pull() { + _docker_pull +} + +_docker_image_push() { + _docker_push +} + +_docker_image_remove() { + _docker_image_rm +} + +_docker_image_rm() { + _docker_rmi +} + +_docker_image_rmi() { + _docker_image_rm +} + +_docker_image_save() { + _docker_save +} + +_docker_image_tag() { + _docker_tag +} + + +_docker_images() { + _docker_image_ls +} + _docker_import() { _docker_image_import } From d190c409fe2d5b710103affd0f34c83faa89307d Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 24 Oct 2016 09:26:40 -0700 Subject: [PATCH 08/12] Move bash completion logic to new subcommand: pull Signed-off-by: Harald Albers Upstream-commit: 6864f3ae5a3acb127fe4199540d789fba1ef0bd4 Component: engine --- .../engine/contrib/completion/bash/docker | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index ef07a7f7b2..84d2b4baba 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2148,7 +2148,25 @@ _docker_image_prune() { } _docker_image_pull() { - _docker_pull + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--all-tags -a --disable-content-trust=false --help" -- "$cur" ) ) + ;; + *) + local counter=$(__docker_pos_first_nonflag) + if [ $cword -eq $counter ]; then + for arg in "${COMP_WORDS[@]}"; do + case "$arg" in + --all-tags|-a) + __docker_complete_image_repos + return + ;; + esac + done + __docker_complete_image_repos_and_tags + fi + ;; + esac } _docker_image_push() { @@ -3005,25 +3023,7 @@ _docker_ps() { } _docker_pull() { - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--all-tags -a --disable-content-trust=false --help" -- "$cur" ) ) - ;; - *) - local counter=$(__docker_pos_first_nonflag) - if [ $cword -eq $counter ]; then - for arg in "${COMP_WORDS[@]}"; do - case "$arg" in - --all-tags|-a) - __docker_complete_image_repos - return - ;; - esac - done - __docker_complete_image_repos_and_tags - fi - ;; - esac + _docker_image_pull } _docker_push() { From 1e98008b1593d4c9479cea25a657d7d7d428bbfa Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 24 Oct 2016 09:27:44 -0700 Subject: [PATCH 09/12] Move bash completion logic to new subcommand: push Signed-off-by: Harald Albers Upstream-commit: 2d139df59cc2791ef3c343f773311aa3ae000413 Component: engine --- .../engine/contrib/completion/bash/docker | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 84d2b4baba..023ea1544b 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2170,7 +2170,17 @@ _docker_image_pull() { } _docker_image_push() { - _docker_push + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--disable-content-trust=false --help" -- "$cur" ) ) + ;; + *) + local counter=$(__docker_pos_first_nonflag) + if [ $cword -eq $counter ]; then + __docker_complete_image_repos_and_tags + fi + ;; + esac } _docker_image_remove() { @@ -3027,17 +3037,7 @@ _docker_pull() { } _docker_push() { - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--disable-content-trust=false --help" -- "$cur" ) ) - ;; - *) - local counter=$(__docker_pos_first_nonflag) - if [ $cword -eq $counter ]; then - __docker_complete_image_repos_and_tags - fi - ;; - esac + _docker_image_push } _docker_rename() { From 6054af36214c13ad2740fddcbb2440c209e26691 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 24 Oct 2016 09:29:23 -0700 Subject: [PATCH 10/12] Move bash completion logic to new subcommand: rmi Signed-off-by: Harald Albers Upstream-commit: 01c259e08a43679e6cd406d236b1da48ad1e7204 Component: engine --- .../engine/contrib/completion/bash/docker | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 023ea1544b..68ecba54d6 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2188,7 +2188,14 @@ _docker_image_remove() { } _docker_image_rm() { - _docker_rmi + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--force -f --help --no-prune" -- "$cur" ) ) + ;; + *) + __docker_complete_images + ;; + esac } _docker_image_rmi() { @@ -3053,14 +3060,7 @@ _docker_rm() { } _docker_rmi() { - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--force -f --help --no-prune" -- "$cur" ) ) - ;; - *) - __docker_complete_images - ;; - esac + _docker_image_rm } _docker_run() { From 94d4fdd472d385725ae038a568dccf92f3f66fe3 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 24 Oct 2016 09:30:54 -0700 Subject: [PATCH 11/12] Move bash completion logic to new subcommand: save Signed-off-by: Harald Albers Upstream-commit: 18e8c59fbbf2356d502982f1051ea6dc60a3113f Component: engine --- .../engine/contrib/completion/bash/docker | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 68ecba54d6..7a58c81967 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2203,7 +2203,21 @@ _docker_image_rmi() { } _docker_image_save() { - _docker_save + case "$prev" in + --output|-o) + _filedir + return + ;; + esac + + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--help --output -o" -- "$cur" ) ) + ;; + *) + __docker_complete_images + ;; + esac } _docker_image_tag() { @@ -3068,21 +3082,7 @@ _docker_run() { } _docker_save() { - case "$prev" in - --output|-o) - _filedir - return - ;; - esac - - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--help --output -o" -- "$cur" ) ) - ;; - *) - __docker_complete_images - ;; - esac + _docker_image_save } _docker_search() { From 7b5e480927ba984e486ac0b96b367afdc835dfbf Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 24 Oct 2016 09:32:16 -0700 Subject: [PATCH 12/12] Move bash completion logic to new subcommand: tag Signed-off-by: Harald Albers Upstream-commit: 28469b572033e2a0cd3509d1789dc70a63e2a141 Component: engine --- .../engine/contrib/completion/bash/docker | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/components/engine/contrib/completion/bash/docker b/components/engine/contrib/completion/bash/docker index 7a58c81967..4062dcbf11 100644 --- a/components/engine/contrib/completion/bash/docker +++ b/components/engine/contrib/completion/bash/docker @@ -2221,7 +2221,25 @@ _docker_image_save() { } _docker_image_tag() { - _docker_tag + case "$cur" in + -*) + COMPREPLY=( $( compgen -W "--help" -- "$cur" ) ) + ;; + *) + local counter=$(__docker_pos_first_nonflag) + + if [ $cword -eq $counter ]; then + __docker_complete_image_repos_and_tags + return + fi + (( counter++ )) + + if [ $cword -eq $counter ]; then + __docker_complete_image_repos_and_tags + return + fi + ;; + esac } @@ -3129,25 +3147,7 @@ _docker_stop() { } _docker_tag() { - case "$cur" in - -*) - COMPREPLY=( $( compgen -W "--help" -- "$cur" ) ) - ;; - *) - local counter=$(__docker_pos_first_nonflag) - - if [ $cword -eq $counter ]; then - __docker_complete_image_repos_and_tags - return - fi - (( counter++ )) - - if [ $cword -eq $counter ]; then - __docker_complete_image_repos_and_tags - return - fi - ;; - esac + _docker_image_tag } _docker_unpause() {