052a6dbd16045d37b07c4bad550077d5ccc82228
- Author
- Marc Cornellà <marc.cornella@live.com>
- Committer
- GitHub <noreply@github.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/plugins/docker-machine/_docker-machine b/plugins/docker-machine/_docker-machine
2new file mode 100644
3index 0000000000000000000000000000000000000000..7c19ba8e79621ed77bbd0999009b41fe826de4ff
4--- /dev/null
5+++ b/plugins/docker-machine/_docker-machine
6@@ -0,0 +1,359 @@
7+#compdef docker-machine
8+# Description
9+# -----------
10+# zsh completion for docker-machine
11+# https://github.com/leonhartX/docker-machine-zsh-completion
12+# -------------------------------------------------------------------------
13+# Version
14+# -------
15+# 0.1.1
16+# -------------------------------------------------------------------------
17+# Authors
18+# -------
19+# * Ke Xu <leonhartx.k@gmail.com>
20+# -------------------------------------------------------------------------
21+# Inspiration
22+# -----------
23+# * @sdurrheimer docker-compose-zsh-completion https://github.com/sdurrheimer/docker-compose-zsh-completion
24+# * @ilkka _docker-machine
25+
26+
27+__docker-machine_get_hosts() {
28+ [[ $PREFIX = -* ]] && return 1
29+ local state
30+ declare -a hosts
31+ state=$1; shift
32+ if [[ $state != all ]]; then
33+ hosts=(${(f)"$(_call_program commands docker-machine ls -q --filter state=$state)"})
34+ else
35+ hosts=(${(f)"$(_call_program commands docker-machine ls -q)"})
36+ fi
37+ _describe 'host' hosts "$@" && ret=0
38+ return ret
39+}
40+
41+__docker-machine_hosts_with_state() {
42+ declare -a hosts
43+ hosts=(${(f)"$(_call_program commands docker-machine ls -f '{{.Name}}\:{{.DriverName}}\({{.State}}\)\ {{.URL}}')"})
44+ _describe 'host' hosts
45+}
46+
47+__docker-machine_hosts_all() {
48+ __docker-machine_get_hosts all "$@"
49+}
50+
51+__docker-machine_hosts_running() {
52+ __docker-machine_get_hosts Running "$@"
53+}
54+
55+__docker-machine_get_swarm() {
56+ declare -a swarms
57+ swarms=(${(f)"$(_call_program commands docker-machine ls -f {{.Swarm}} | awk '{print $1}')"})
58+ _describe 'swarm' swarms
59+}
60+
61+__docker-machine_hosts_and_files() {
62+ _alternative "hosts:host:__docker-machine_hosts_all -qS ':'" 'files:files:_path_files'
63+}
64+
65+__docker-machine_filters() {
66+ [[ $PREFIX = -* ]] && return 1
67+ integer ret=1
68+
69+ if compset -P '*='; then
70+ case "${${words[-1]%=*}#*=}" in
71+ (driver)
72+ _describe -t driver-filter-opts "driver filter" opts_driver && ret=0
73+ ;;
74+ (swarm)
75+ __docker-machine_get_swarm && ret=0
76+ ;;
77+ (state)
78+ opts_state=('Running' 'Paused' 'Saved' 'Stopped' 'Stopping' 'Starting' 'Error')
79+ _describe -t state-filter-opts "state filter" opts_state && ret=0
80+ ;;
81+ (name)
82+ __docker-machine_hosts_all && ret=0
83+ ;;
84+ (label)
85+ _message 'label' && ret=0
86+ ;;
87+ *)
88+ _message 'value' && ret=0
89+ ;;
90+ esac
91+ else
92+ opts=('driver' 'swarm' 'state' 'name' 'label')
93+ _describe -t filter-opts "filter" opts -qS "=" && ret=0
94+ fi
95+ return ret
96+}
97+
98+__get_swarm_discovery() {
99+ declare -a masters serivces
100+ local service
101+ services=()
102+ masters=($(docker-machine ls -f {{.Swarm}} |grep '(master)' |awk '{print $1}'))
103+ for master in $masters; do
104+ service=${${${(f)"$(_call_program commands docker-machine inspect -f '{{.HostOptions.SwarmOptions.Discovery}}:{{.Name}}' $master)"}/:/\\:}}
105+ services=($services $service)