From cf3ffc516bb847aa34c238a9f60d2bf392c30765 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 3 Jul 2017 13:09:43 +0200 Subject: [PATCH 1/6] Add bash completion for `dockerd --swarm-default-advertise-addr` This adds bash completion for https://github.com/moby/moby/pull/24237. Signed-off-by: Harald Albers --- contrib/completion/bash/docker | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index 33ada275b1..ce6be8fed2 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -2009,6 +2009,7 @@ _docker_daemon() { --shutdown-timeout --storage-driver -s --storage-opt + --swarm-default-advertise-addr --userland-proxy-path --userns-remap " @@ -2128,6 +2129,10 @@ _docker_daemon() { _filedir json return ;; + --swarm-default-advertise-addr) + __docker_complete_local_interfaces + return + ;; --userns-remap) __docker_complete_user_group return From 5296907bef39355d7644b788cf65c24ed91a7413 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 3 Jul 2017 13:23:05 +0200 Subject: [PATCH 2/6] Add bash completion for `dockerd --version` Signed-off-by: Harald Albers --- contrib/completion/bash/docker | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index ce6be8fed2..2e50f740d4 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -1965,6 +1965,7 @@ _docker_daemon() { --raw-logs --selinux-enabled --userland-proxy=false + --version -v " local options_with_args=" $global_options_with_args From 112348d4db3a6426c32651fb913585a25f0d65e2 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 3 Jul 2017 13:30:32 +0200 Subject: [PATCH 3/6] Add bash completion for `dockerd --no-new-privileges` This adds bash completion for https://github.com/moby/moby/pull/32944. Signed-off-by: Harald Albers --- contrib/completion/bash/docker | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index 2e50f740d4..14713611db 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -1962,6 +1962,7 @@ _docker_daemon() { --iptables=false --ipv6 --live-restore + --no-new-privileges --raw-logs --selinux-enabled --userland-proxy=false From d610951e857e085be2a9c859a9379d43fefe0885 Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 3 Jul 2017 13:44:23 +0200 Subject: [PATCH 4/6] Add bash completion for `dockerd --default-runtime` `--default-runtime` was added in https://github.com/moby/moby/pull/22983 Signed-off-by: Harald Albers --- contrib/completion/bash/docker | 1 + 1 file changed, 1 insertion(+) diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index 14713611db..a980346c75 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -1985,6 +1985,7 @@ _docker_daemon() { --data-root --default-gateway --default-gateway-v6 + --default-runtime --default-shm-size --default-ulimit --dns From 74a5d1af86a3d0898dda79bb13282f1b039b015c Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 3 Jul 2017 13:55:46 +0200 Subject: [PATCH 5/6] Add bash completion for `dockerd --cpu-rt-(period|runtime)` This adds bash completion for https://github.com/moby/moby/pull/23430. Signed-off-by: Harald Albers --- contrib/completion/bash/docker | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index a980346c75..a57c3a8a3f 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -1982,6 +1982,8 @@ _docker_daemon() { --cluster-store-opt --config-file --containerd + --cpu-rt-period + --cpu-rt-runtime --data-root --default-gateway --default-gateway-v6 From 0ea31afd57acaf2481b9d2825b05dc009be08b7c Mon Sep 17 00:00:00 2001 From: Harald Albers Date: Mon, 3 Jul 2017 14:37:51 +0200 Subject: [PATCH 6/6] Add bash completion for `dockerd --metrics-addr` `--metrics-addr` does not accept network interface names. Therefore `__docker_local_interfaces` was refined for this feature to optionally exclude interface names. Note that although `--metrics-addr` is experimental, it cannot be selectively enabled in bash completion because the test for the daemon running in experimental mode requires a running daemon. As this completion pertains to starting the daemon, this requirement is not met. Signed-off-by: Harald Albers --- contrib/completion/bash/docker | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/contrib/completion/bash/docker b/contrib/completion/bash/docker index a57c3a8a3f..2dec338240 100644 --- a/contrib/completion/bash/docker +++ b/contrib/completion/bash/docker @@ -636,18 +636,40 @@ __docker_complete_resolved_hostname() { COMPREPLY=( $(host 2>/dev/null "${cur%:}" | awk '/has address/ {print $4}') ) } +# __docker_local_interfaces returns a list of the names and addresses of all +# local network interfaces. +# If `--ip-only` is passed as a first argument, only addresses are returned. __docker_local_interfaces() { command -v ip >/dev/null 2>&1 || return - ip addr show scope global 2>/dev/null | sed -n 's| \+inet \([0-9.]\+\).* \([^ ]\+\)|\1 \2|p' + + local format + if [ "$1" = "--ip-only" ] ; then + format='\1' + shift + else + format='\1 \2' + fi + + ip addr show scope global 2>/dev/null | sed -n "s| \+inet \([0-9.]\+\).* \([^ ]\+\)|$format|p" } +# __docker_complete_local_interfaces applies completion of the names and addresses of all +# local network interfaces based on the current value of `$cur`. +# An additional value can be added to the possible completions with an `--add` argument. __docker_complete_local_interfaces() { local additional_interface if [ "$1" = "--add" ] ; then additional_interface="$2" + shift 2 fi - COMPREPLY=( $( compgen -W "$(__docker_local_interfaces) $additional_interface" -- "$cur" ) ) + COMPREPLY=( $( compgen -W "$(__docker_local_interfaces "$@") $additional_interface" -- "$cur" ) ) +} + +# __docker_complete_local_ips applies completion of the addresses of all local network +# interfaces based on the current value of `$cur`. +__docker_complete_local_ips() { + __docker_complete_local_interfaces --ip-only } # __docker_complete_capabilities_addable completes Linux capabilities which are @@ -2006,6 +2028,7 @@ _docker_daemon() { --log-opt --max-concurrent-downloads --max-concurrent-uploads + --metrics-addr --mtu --oom-score-adjust --pidfile -p @@ -2130,6 +2153,12 @@ _docker_daemon() { __docker_complete_log_options return ;; + --metrics-addr) + __docker_complete_local_ips + __docker_append_to_completions ":" + __docker_nospace + return + ;; --seccomp-profile) _filedir json return