summaryrefslogtreecommitdiff
path: root/plugins/docker/docker.plugin.zsh
diff options
context:
space:
mode:
authorCarlo Sala <carlosalag@protonmail.com>2023-07-20 10:43:56 +0200
committerCarlo Sala <carlosalag@protonmail.com>2023-07-20 10:43:56 +0200
commit7d5e12500a2ba0b575ffafcbb516568973528730 (patch)
tree90854b8aa4bdbdc46d372ce0a15b9781a385e2b4 /plugins/docker/docker.plugin.zsh
parentc4392a4da31efee36f29a62d3951d5c0fcd7d4e6 (diff)
downloadzsh-7d5e12500a2ba0b575ffafcbb516568973528730.tar.gz
zsh-7d5e12500a2ba0b575ffafcbb516568973528730.tar.bz2
zsh-7d5e12500a2ba0b575ffafcbb516568973528730.zip
feat(docker): add `legacy-completion` option
Diffstat (limited to 'plugins/docker/docker.plugin.zsh')
-rw-r--r--plugins/docker/docker.plugin.zsh27
1 files changed, 14 insertions, 13 deletions
diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh
index 7777048a3..7e657f2df 100644
--- a/plugins/docker/docker.plugin.zsh
+++ b/plugins/docker/docker.plugin.zsh
@@ -41,21 +41,22 @@ fi
0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
0="${${(M)0:#/*}:-$PWD/$0}"
+# If the completion file doesn't exist yet, we need to autoload it and
+# bind it to `docker`. Otherwise, compinit will have already done that.
+if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then
+ typeset -g -A _comps
+ autoload -Uz _docker
+ _comps[docker]=_docker
+fi
+
{
+ # `docker completion` is only available from 23.0.0 on
# docker version returns `Docker version 24.0.2, build cb74dfcd85`
# with `s:,:` remove the comma after the version, and select third word of it
- local _docker_version=${${(s:,:z)"$(command docker --version)"}[3]}
- # `docker completion` is only available from 23.0.0 on
- if is-at-least 23.0.0 $_docker_version; then
- # If the completion file doesn't exist yet, we need to autoload it and
- # bind it to `docker`. Otherwise, compinit will have already done that.
- if [[ ! -f "$ZSH_CACHE_DIR/completions/_docker" ]]; then
- typeset -g -A _comps
- autoload -Uz _docker
- _comps[docker]=_docker
- fi
- command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker"
- else
- command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker"
+ if zstyle -t ':omz:plugins:docker' legacy-completion || \
+ ! is-at-least 23.0.0 ${${(s:,:z)"$(command docker --version)"}[3]}; then
+ command cp "${0:h}/completions/_docker" "$ZSH_CACHE_DIR/completions/_docker"
+ else
+ command docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker"
fi
} &|