mirror of https://github.com/docker/cli.git
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 <github@albersweb.de>
This commit is contained in:
parent
74a5d1af86
commit
0ea31afd57
|
@ -636,18 +636,40 @@ __docker_complete_resolved_hostname() {
|
||||||
COMPREPLY=( $(host 2>/dev/null "${cur%:}" | awk '/has address/ {print $4}') )
|
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() {
|
__docker_local_interfaces() {
|
||||||
command -v ip >/dev/null 2>&1 || return
|
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() {
|
__docker_complete_local_interfaces() {
|
||||||
local additional_interface
|
local additional_interface
|
||||||
if [ "$1" = "--add" ] ; then
|
if [ "$1" = "--add" ] ; then
|
||||||
additional_interface="$2"
|
additional_interface="$2"
|
||||||
|
shift 2
|
||||||
fi
|
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
|
# __docker_complete_capabilities_addable completes Linux capabilities which are
|
||||||
|
@ -2006,6 +2028,7 @@ _docker_daemon() {
|
||||||
--log-opt
|
--log-opt
|
||||||
--max-concurrent-downloads
|
--max-concurrent-downloads
|
||||||
--max-concurrent-uploads
|
--max-concurrent-uploads
|
||||||
|
--metrics-addr
|
||||||
--mtu
|
--mtu
|
||||||
--oom-score-adjust
|
--oom-score-adjust
|
||||||
--pidfile -p
|
--pidfile -p
|
||||||
|
@ -2130,6 +2153,12 @@ _docker_daemon() {
|
||||||
__docker_complete_log_options
|
__docker_complete_log_options
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
|
--metrics-addr)
|
||||||
|
__docker_complete_local_ips
|
||||||
|
__docker_append_to_completions ":"
|
||||||
|
__docker_nospace
|
||||||
|
return
|
||||||
|
;;
|
||||||
--seccomp-profile)
|
--seccomp-profile)
|
||||||
_filedir json
|
_filedir json
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue