Fix ZSH autocomplete for multiple -f flags

Signed-off-by: Alex Puschinsky <alexpoo@gmail.com>
This commit is contained in:
Alex Puschinsky 2018-11-03 18:09:28 +02:00
parent 2b604c1e8b
commit 5b02922455

View File

@ -354,7 +354,7 @@ _docker-compose() {
'(-): :->command' \ '(-): :->command' \
'(-)*:: :->option-or-argument' && ret=0 '(-)*:: :->option-or-argument' && ret=0
local -a relevant_compose_flags relevant_docker_flags compose_options docker_options local -a relevant_compose_flags relevant_compose_repeatable_flags relevant_docker_flags compose_options docker_options
relevant_compose_flags=( relevant_compose_flags=(
"--file" "-f" "--file" "-f"
@ -368,6 +368,10 @@ _docker-compose() {
"--skip-hostname-check" "--skip-hostname-check"
) )
relevant_compose_repeatable_flags=(
"--file" "-f"
)
relevant_docker_flags=( relevant_docker_flags=(
"--host" "-H" "--host" "-H"
"--tls" "--tls"
@ -385,9 +389,18 @@ _docker-compose() {
fi fi
fi fi
if [[ -n "${relevant_compose_flags[(r)$k]}" ]]; then if [[ -n "${relevant_compose_flags[(r)$k]}" ]]; then
compose_options+=$k if [[ -n "${relevant_compose_repeatable_flags[(r)$k]}" ]]; then
if [[ -n "$opt_args[$k]" ]]; then values=("${(@s/:/)opt_args[$k]}")
compose_options+=$opt_args[$k] for value in $values
do
compose_options+=$k
compose_options+=$value
done
else
compose_options+=$k
if [[ -n "$opt_args[$k]" ]]; then
compose_options+=$opt_args[$k]
fi
fi fi
fi fi
done done