diff options
author | Carlo Sala <carlosalag@protonmail.com> | 2023-07-20 10:43:56 +0200 |
---|---|---|
committer | Carlo Sala <carlosalag@protonmail.com> | 2023-07-20 10:43:56 +0200 |
commit | 7d5e12500a2ba0b575ffafcbb516568973528730 (patch) | |
tree | 90854b8aa4bdbdc46d372ce0a15b9781a385e2b4 /plugins/docker/docker.plugin.zsh | |
parent | c4392a4da31efee36f29a62d3951d5c0fcd7d4e6 (diff) | |
download | zsh-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.zsh | 27 |
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 } &| |