f4013053d302480b7663ad5c3a04d0442237a952
- Author
- Julien Dubreuil <dubreuil.julien@gmail.com>
- Committer
- Marc Cornellà <marc.cornella@live.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/plugins/docker-compose/README.md b/plugins/docker-compose/README.md
2index 567b821487af846fa41948fea666f7de6280954f..d3fcb29fef46c237de9f380d7c106d73caa7065b 100644
3--- a/plugins/docker-compose/README.md
4+++ b/plugins/docker-compose/README.md
5@@ -1,5 +1,4 @@
6 # Docker-compose plugin for oh my zsh
7
8-A copy of the completion script from the [docker-compose](1) git repo.
9+A copy of the completion script from the [docker-compose](https://github.com/docker/compose/blob/master/contrib/completion/zsh/_docker-compose) git repo.
10
11-[1]:[https://github.com/docker/compose/blob/master/contrib/completion/zsh/_docker-compose]
12diff --git a/plugins/docker-compose/_docker-compose b/plugins/docker-compose/_docker-compose
13index 19c06675ad5057dd09b3398e476744ac8fdd8b10..2947cef382438d9cc8a8417cac3c64cd34db4268 100644
14--- a/plugins/docker-compose/_docker-compose
15+++ b/plugins/docker-compose/_docker-compose
16@@ -7,7 +7,7 @@
17 # -------------------------------------------------------------------------
18 # Version
19 # -------
20-# 0.1.0
21+# 1.5.0
22 # -------------------------------------------------------------------------
23 # Authors
24 # -------
25@@ -19,58 +19,69 @@
26 # * @felixr docker zsh completion script : https://github.com/felixr/docker-zsh-completion
27 # -------------------------------------------------------------------------
28
29-# For compatibility reasons, Compose and therefore its completion supports several
30-# stack compositon files as listed here, in descending priority.
31-# Support for these filenames might be dropped in some future version.
32-__docker-compose_compose_file() {
33- local file
34- for file in docker-compose.y{,a}ml fig.y{,a}ml ; do
35- [ -e $file ] && {
36- echo $file
37- return
38- }
39- done
40- echo docker-compose.yml
41+__docker-compose_q() {
42+ docker-compose 2>/dev/null $compose_options "$@"
43 }
44
45-# Extracts all service names from docker-compose.yml.
46-___docker-compose_all_services_in_compose_file() {
47+# All services defined in docker-compose.yml
48+__docker-compose_all_services_in_compose_file() {
49 local already_selected
50 local -a services
51- already_selected=$(echo ${words[@]} | tr " " "|")
52- awk -F: '/^[a-zA-Z0-9]/{print $1}' "${compose_file:-$(__docker-compose_compose_file)}" 2>/dev/null | grep -Ev "$already_selected"
53+ already_selected=$(echo $words | tr " " "|")
54+ __docker-compose_q config --services \
55+ | grep -Ev "^(${already_selected})$"
56 }
57
58 # All services, even those without an existing container
59 __docker-compose_services_all() {
60- services=$(___docker-compose_all_services_in_compose_file)
61- _alternative "args:services:($services)"
62+ [[ $PREFIX = -* ]] && return 1
63+ integer ret=1
64+ services=$(__docker-compose_all_services_in_compose_file)
65+ _alternative "args:services:($services)" && ret=0
66+
67+ return ret
68 }
69
70 # All services that have an entry with the given key in their docker-compose.yml section
71-___docker-compose_services_with_key() {
72+__docker-compose_services_with_key() {
73 local already_selected
74 local -a buildable
75- already_selected=$(echo ${words[@]} | tr " " "|")
76+ already_selected=$(echo $words | tr " " "|")
77 # flatten sections to one line, then filter lines containing the key and return section name.
78- awk '/^[a-zA-Z0-9]/{printf "\n"};{printf $0;next;}' "${compose_file:-$(__docker-compose_compose_file)}" 2>/dev/null | awk -F: -v key=": +$1:" '$0 ~ key {print $1}' 2>/dev/null | grep -Ev "$already_selected"
79+ __docker-compose_q config \
80+ | sed -n -e '/^services:/,/^[^ ]/p' \
81+ | sed -n 's/^ //p' \
82+ | awk '/^[a-zA-Z0-9]/{printf "\n"};{printf $0;next;}' \
83+ | grep " \+$1:" \
84+ | cut -d: -f1 \
85+ | grep -Ev "^(${already_selected})$"
86 }
87
88 # All services that are defined by a Dockerfile reference
89 __docker-compose_services_from_build() {
90- buildable=$(___docker-compose_services_with_key build)
91- _alternative "args:buildable services:($buildable)"
92+ [[ $PREFIX = -* ]] && return 1
93+ integer ret=1
94+ buildable=$(__docker-compose_services_with_key build)
95+ _alternative "args:buildable services:($buildable)" && ret=0
96+
97+ return ret
98 }
99
100 # All services that are defined by an image
101 __docker-compose_services_from_image() {
102- pullable=$(___docker-compose_services_with_key image)
103- _alternative "args:pullable services:($pullable)"
104+ [[ $PREFIX = -* ]] && return 1
105+ integer ret=1
106+ pullable=$(__docker-compose_services_with_key image)
107+ _alternative "args:pullable services:($pullable)" && ret=0
108+
109+ return ret
110 }
111
112 __docker-compose_get_services() {
113- local kind expl
114- declare -a running stopped lines args services
115+ [[ $PREFIX = -* ]] && return 1