Merge pull request #1138 from camservo/feature/docker-completion-update
Updating docker completionspull/1144/merge
commit
7bd62af151
|
|
@ -120,7 +120,7 @@ _docker_compose_build() {
|
|||
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "--build-arg --force-rm --help --no-cache --pull" -- "$cur" ) )
|
||||
COMPREPLY=( $( compgen -W "--build-arg --force-rm --help --memory --no-cache --pull" -- "$cur" ) )
|
||||
;;
|
||||
*)
|
||||
__docker_compose_services_from_build
|
||||
|
|
@ -403,14 +403,14 @@ _docker_compose_run() {
|
|||
__docker_compose_nospace
|
||||
return
|
||||
;;
|
||||
--entrypoint|--name|--user|-u|--volume|-v|--workdir|-w)
|
||||
--entrypoint|--label|-l|--name|--user|-u|--volume|-v|--workdir|-w)
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$cur" in
|
||||
-*)
|
||||
COMPREPLY=( $( compgen -W "-d --entrypoint -e --help --name --no-deps --publish -p --rm --service-ports -T --user -u --volume -v --workdir -w" -- "$cur" ) )
|
||||
COMPREPLY=( $( compgen -W "-d --entrypoint -e --help --label -l --name --no-deps --publish -p --rm --service-ports -T --user -u --volume -v --workdir -w" -- "$cur" ) )
|
||||
;;
|
||||
*)
|
||||
__docker_compose_services_all
|
||||
|
|
|
|||
|
|
@ -14,71 +14,160 @@
|
|||
# . ~/.docker-machine-completion.sh
|
||||
#
|
||||
|
||||
_docker_machine_active() {
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
# --- helper functions -------------------------------------------------------
|
||||
|
||||
_docker_machine_q() {
|
||||
docker-machine 2>/dev/null "$@"
|
||||
}
|
||||
|
||||
# suppresses trailing whitespace
|
||||
_docker_machine_nospace() {
|
||||
# compopt is not available in ancient bash versions (OSX)
|
||||
# so only call it if it's available
|
||||
type compopt &>/dev/null && compopt -o nospace
|
||||
}
|
||||
|
||||
_docker_machine_machines() {
|
||||
_docker_machine_q ls --format '{{.Name}}' "$@"
|
||||
}
|
||||
|
||||
_docker_machine_drivers() {
|
||||
local drivers=(
|
||||
amazonec2
|
||||
azure
|
||||
digitalocean
|
||||
exoscale
|
||||
generic
|
||||
google
|
||||
hyperv
|
||||
openstack
|
||||
rackspace
|
||||
softlayer
|
||||
virtualbox
|
||||
vmwarefusion
|
||||
vmwarevcloudair
|
||||
vmwarevsphere
|
||||
)
|
||||
echo "${drivers[@]}"
|
||||
}
|
||||
|
||||
_docker_machine_value_of_option() {
|
||||
local pattern="$1"
|
||||
for (( i=2; i < ${cword}; ++i)); do
|
||||
if [[ ${words[$i]} =~ ^($pattern)$ ]] ; then
|
||||
echo ${words[$i + 1]}
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Returns `key` if we are currently completing the value of a map option
|
||||
# (`key=value`) which matches the glob passed in as an argument.
|
||||
# This function is needed for key-specific argument completions.
|
||||
_docker_machine_map_key_of_current_option() {
|
||||
local glob="$1"
|
||||
|
||||
local key glob_pos
|
||||
if [ "$cur" = "=" ] ; then # key= case
|
||||
key="$prev"
|
||||
glob_pos=$((cword - 2))
|
||||
elif [[ $cur == *=* ]] ; then # key=value case (OSX)
|
||||
key=${cur%=*}
|
||||
glob_pos=$((cword - 1))
|
||||
elif [ "$prev" = "=" ] ; then
|
||||
key=${words[$cword - 2]} # key=value case
|
||||
glob_pos=$((cword - 3))
|
||||
else
|
||||
COMPREPLY=()
|
||||
return
|
||||
fi
|
||||
|
||||
[ "${words[$glob_pos]}" = "=" ] && ((glob_pos--)) # --option=key=value syntax
|
||||
|
||||
[[ ${words[$glob_pos]} == $glob ]] && echo "$key"
|
||||
}
|
||||
|
||||
# --- completion functions ---------------------------------------------------
|
||||
|
||||
_docker_machine_active() {
|
||||
case "${prev}" in
|
||||
--timeout|-t)
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help --timeout -t" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_config() {
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--swarm --help" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "--help --swarm" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_create() {
|
||||
# cheating, b/c there are approximately one zillion options to create
|
||||
COMPREPLY=($(compgen -W "$(docker-machine create --help | grep '^ -' | sed 's/^ //; s/[^a-z0-9-].*$//')" -- "${cur}"))
|
||||
case "${prev}" in
|
||||
--driver|-d)
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_drivers)" -- "${cur}"))
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
# driver specific options are only included in help output if --driver is given,
|
||||
# so we have to pass that option when calling docker-machine to harvest options.
|
||||
local driver="$(_docker_machine_value_of_option '--driver|-d')"
|
||||
local parsed_options="$(_docker_machine_q create ${driver:+--driver $driver} --help | grep '^ -' | sed 's/^ //; s/[^a-z0-9-].*$//')"
|
||||
if [[ ${cur} == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "${parsed_options} -d --help" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_env() {
|
||||
case "${prev}" in
|
||||
--shell)
|
||||
# What are the options for --shell?
|
||||
COMPREPLY=()
|
||||
COMPREPLY=($(compgen -W "cmd fish powershell tcsh" -- "${cur}"))
|
||||
return
|
||||
;;
|
||||
*)
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--swarm --shell --unset --no-proxy --help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
fi
|
||||
esac
|
||||
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help --no-proxy --shell --swarm --unset -u" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
# See docker-machine-wrapper.bash for the use command
|
||||
_docker_machine_use() {
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--swarm --unset --help" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "--help --swarm --unset" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_inspect() {
|
||||
case "${prev}" in
|
||||
-f|--format)
|
||||
COMPREPLY=()
|
||||
;;
|
||||
*)
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--format --help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
fi
|
||||
--format|-f)
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--format -f --help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_ip() {
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -86,26 +175,52 @@ _docker_machine_kill() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_ls() {
|
||||
case "${prev}" in
|
||||
--filter)
|
||||
COMPREPLY=()
|
||||
local key=$(_docker_machine_map_key_of_current_option '--filter')
|
||||
case "$key" in
|
||||
driver)
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_drivers)" -- "${cur##*=}"))
|
||||
return
|
||||
;;
|
||||
*)
|
||||
COMPREPLY=($(compgen -W "--quiet --filter --format --timeout --help" -- "${cur}"))
|
||||
state)
|
||||
COMPREPLY=($(compgen -W "Error Paused Running Saved Starting Stopped Stopping" -- "${cur##*=}"))
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
case "${prev}" in
|
||||
--filter)
|
||||
COMPREPLY=($(compgen -W "driver label name state swarm" -S= -- "${cur}"))
|
||||
_docker_machine_nospace
|
||||
return
|
||||
;;
|
||||
--format|-f|--timeout|-t)
|
||||
return
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--filter --format -f --help --quiet -q --timeout -t" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_provision() {
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines --filter state=Running)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_regenerate_certs() {
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help --force" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "--force -f --help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines --filter state=Running)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -113,16 +228,15 @@ _docker_machine_restart() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_rm() {
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help --force -y" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "--force -f --help -y" -- "${cur}"))
|
||||
else
|
||||
# For rm, it's best to be explicit
|
||||
COMPREPLY=()
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -130,18 +244,18 @@ _docker_machine_ssh() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
_docker_machine_scp() {
|
||||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help --recursive" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "--delta -d --help --recursive -r" -- "${cur}"))
|
||||
else
|
||||
_filedir
|
||||
# It would be really nice to ssh to the machine and ls to complete
|
||||
# remote files.
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q | sed 's/$/:/')" -- "${cur}") "${COMPREPLY[@]}")
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines | sed 's/$/:/')" -- "${cur}") "${COMPREPLY[@]}")
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -149,7 +263,7 @@ _docker_machine_start() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines --filter state=Stopped)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -157,7 +271,7 @@ _docker_machine_status() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -165,7 +279,7 @@ _docker_machine_stop() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines --filter state=Running)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -173,7 +287,7 @@ _docker_machine_upgrade() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -181,7 +295,7 @@ _docker_machine_url() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -189,7 +303,7 @@ _docker_machine_version() {
|
|||
if [[ "${cur}" == -* ]]; then
|
||||
COMPREPLY=($(compgen -W "--help" -- "${cur}"))
|
||||
else
|
||||
COMPREPLY=($(compgen -W "$(docker-machine ls -q)" -- "${cur}"))
|
||||
COMPREPLY=($(compgen -W "$(_docker_machine_machines)" -- "${cur}"))
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -215,7 +329,7 @@ _docker_machine_docker_machine() {
|
|||
|
||||
_docker_machine() {
|
||||
COMPREPLY=()
|
||||
local commands=(active config create env inspect ip kill ls regenerate-certs restart rm ssh scp start status stop upgrade url version help)
|
||||
local commands=(active config create env inspect ip kill ls provision regenerate-certs restart rm ssh scp start status stop upgrade url version help)
|
||||
|
||||
local flags=(--debug --native-ssh --github-api-token --bugsnag-api-token --help --version)
|
||||
local wants_dir=(--storage-path)
|
||||
|
|
@ -249,4 +363,4 @@ _docker_machine() {
|
|||
return 0
|
||||
}
|
||||
|
||||
complete -F _docker_machine docker-machine
|
||||
complete -F _docker_machine docker-machine docker-machine.exe
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue