summaryrefslogtreecommitdiff
path: root/plugins/kubectl/kubectl.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/kubectl/kubectl.plugin.zsh')
-rw-r--r--plugins/kubectl/kubectl.plugin.zsh38
1 files changed, 24 insertions, 14 deletions
diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh
index 3630facaa..bf602bb7b 100644
--- a/plugins/kubectl/kubectl.plugin.zsh
+++ b/plugins/kubectl/kubectl.plugin.zsh
@@ -1,13 +1,22 @@
if (( $+commands[kubectl] )); then
- __KUBECTL_COMPLETION_FILE="${ZSH_CACHE_DIR}/kubectl_completion"
-
- if [[ ! -f $__KUBECTL_COMPLETION_FILE || ! -s $__KUBECTL_COMPLETION_FILE ]]; then
- kubectl completion zsh >! $__KUBECTL_COMPLETION_FILE
- fi
-
- [[ -f $__KUBECTL_COMPLETION_FILE ]] && source $__KUBECTL_COMPLETION_FILE
-
- unset __KUBECTL_COMPLETION_FILE
+ # TODO: 2022-01-05: remove this block
+ # remove old generated files
+ command rm -f "$ZSH_CACHE_DIR/kubectl_completion"
+
+ # TODO: 2022-01-05: remove this bit of code as it exists in oh-my-zsh.sh
+ # Add completions folder in $ZSH_CACHE_DIR
+ command mkdir -p "$ZSH_CACHE_DIR/completions"
+ (( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath)
+
+ # If the completion file doesn't exist yet, we need to autoload it and
+ # bind it to `kubectl`. Otherwise, compinit will have already done that.
+ if [[ ! -f "$ZSH_CACHE_DIR/completions/_kubectl" ]]; then
+ typeset -g -A _comps
+ autoload -Uz _kubectl
+ _comps[kubectl]=_kubectl
+ fi
+
+ kubectl completion zsh >! "$ZSH_CACHE_DIR/completions/_kubectl" &|
fi
# This command is used a LOT both below and in daily life
@@ -97,8 +106,9 @@ alias kdd='kubectl describe deployment'
alias kdeld='kubectl delete deployment'
alias ksd='kubectl scale deployment'
alias krsd='kubectl rollout status deployment'
-kres(){
- kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S)
+
+function kres(){
+ kubectl set env $@ REFRESHED_AT=$(date +%Y%m%d%H%M%S)
}
# Rollout management.
@@ -170,9 +180,9 @@ alias kdelcj='kubectl delete cronjob'
# Only run if the user actually has kubectl installed
if (( ${+_comps[kubectl]} )); then
- kj() { kubectl "$@" -o json | jq; }
- kjx() { kubectl "$@" -o json | fx; }
- ky() { kubectl "$@" -o yaml | yh; }
+ function kj() { kubectl "$@" -o json | jq; }
+ function kjx() { kubectl "$@" -o json | fx; }
+ function ky() { kubectl "$@" -o yaml | yh; }
compdef kj=kubectl
compdef kjx=kubectl