a9b6af5b231227f8ab91f922adc5e0d0a2e6fc08

Author
Carlo Sala <carlosalag@protonmail.com>
Committer
Carlo Sala <carlosalag@protonmail.com>
Date

Message

refactor(minikube): standardize completion generation

Closes #10763

Diff

 1diff --git a/plugins/minikube/minikube.plugin.zsh b/plugins/minikube/minikube.plugin.zsh
 2index e87abceaf60cc9898aa74fb887213dc8b823e7e9..0d2737052c0b45507ae30b83968373382c97cfdd 100644
 3--- a/plugins/minikube/minikube.plugin.zsh
 4+++ b/plugins/minikube/minikube.plugin.zsh
 5@@ -1,13 +1,13 @@
 6-# Autocompletion for Minikube.
 7-#
 8-if (( $+commands[minikube] )); then
 9-    __MINIKUBE_COMPLETION_FILE="${ZSH_CACHE_DIR}/minikube_completion"
10-
11-    if [[ ! -f $__MINIKUBE_COMPLETION_FILE ]]; then
12-        minikube completion zsh >! $__MINIKUBE_COMPLETION_FILE
13-    fi
14-
15-    [[ -f $__MINIKUBE_COMPLETION_FILE ]] && source $__MINIKUBE_COMPLETION_FILE
16+if (( ! $+commands[minikube] )); then
17+  return
18+fi
19 
20-    unset __MINIKUBE_COMPLETION_FILE
21+# If the completion file doesn't exist yet, we need to autoload it and
22+# bind it to `minikube`. Otherwise, compinit will have already done that.
23+if [[ ! -f "$ZSH_CACHE_DIR/completions/_minikube" ]]; then
24+  typeset -g -A _comps
25+  autoload -Uz _minikube
26+  _comps[minikube]=_minikube
27 fi
28+
29+minikube completion zsh >| "$ZSH_CACHE_DIR/completions/_minikube" &|