summaryrefslogtreecommitdiff
path: root/plugins/docker
diff options
context:
space:
mode:
authorCarlo Sala <carlosalag@protonmail.com>2023-06-15 20:06:56 +0200
committerGitHub <noreply@github.com>2023-06-15 20:06:56 +0200
commit6bffaab2904d4bb37edad90e00b6f6e842d3811d (patch)
tree9749226021e5e06cf1c9c48a5eba42499f96cdd1 /plugins/docker
parent68f3ebb4de11aa2013ccc5252d4415840e0d7342 (diff)
downloadzsh-6bffaab2904d4bb37edad90e00b6f6e842d3811d.tar.gz
zsh-6bffaab2904d4bb37edad90e00b6f6e842d3811d.tar.bz2
zsh-6bffaab2904d4bb37edad90e00b6f6e842d3811d.zip
fix(docker): only generate completion for docker >23 (#11754)
Diffstat (limited to 'plugins/docker')
-rw-r--r--plugins/docker/docker.plugin.zsh29
1 files changed, 19 insertions, 10 deletions
diff --git a/plugins/docker/docker.plugin.zsh b/plugins/docker/docker.plugin.zsh
index 06a191a10..e8aad9230 100644
--- a/plugins/docker/docker.plugin.zsh
+++ b/plugins/docker/docker.plugin.zsh
@@ -1,13 +1,3 @@
-# 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 zsh >| "$ZSH_CACHE_DIR/completions/_docker" &|
-
alias dbl='docker build'
alias dcin='docker container inspect'
alias dcls='docker container ls'
@@ -41,3 +31,22 @@ alias dvls='docker volume ls'
alias dvprune='docker volume prune'
alias dxc='docker container exec'
alias dxcit='docker container exec -it'
+
+if (( ! $+commands[docker] )); then
+ return
+fi
+
+{
+ # `docker completion` is only available from 23.0.0 on
+ local _docker_version=$(docker version --format '{{.Client.Version}}' 2>/dev/null)
+ 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
+ docker completion zsh >| "$ZSH_CACHE_DIR/completions/_docker"
+ fi
+} &|