From 2956e7820ee1dd7111084a291722c12aea01bb5c Mon Sep 17 00:00:00 2001 From: Lorenzo Bolla Date: Sun, 20 May 2018 13:46:27 +0100 Subject: [PATCH 1/2] Fix 6843 Cache kubectl completion script to file to speed up sourcing --- plugins/kubectl/kubectl.plugin.zsh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index ec1321d8..f4062186 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -2,8 +2,15 @@ # # Author: https://github.com/pstadler +KUBECTL_COMPLETION_FILENAME="$TMPPREFIX-kubectl-completion-zsh" + +if [[ ! -f "$KUBECTL_COMPLETION_FILENAME" ]] +then + kubectl completion zsh > "$KUBECTL_COMPLETION_FILENAME" +fi + if [ $commands[kubectl] ]; then - source <(kubectl completion zsh) + source "$KUBECTL_COMPLETION_FILENAME" fi # This command is used ALOT both below and in daily life From 9b11b7e9388dc8c736c321e56e29440dedfa6152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 26 May 2018 18:25:47 +0200 Subject: [PATCH 2/2] Update logic to follow npm plugin convention --- plugins/kubectl/kubectl.plugin.zsh | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/plugins/kubectl/kubectl.plugin.zsh b/plugins/kubectl/kubectl.plugin.zsh index f4062186..c4e30dac 100644 --- a/plugins/kubectl/kubectl.plugin.zsh +++ b/plugins/kubectl/kubectl.plugin.zsh @@ -1,16 +1,13 @@ -# Autocompletion for kubectl, the command line interface for Kubernetes -# -# Author: https://github.com/pstadler +if (( $+commands[kubectl] )); then + __KUBECTL_COMPLETION_FILE="${ZSH_CACHE_DIR}/kubectl_completion" -KUBECTL_COMPLETION_FILENAME="$TMPPREFIX-kubectl-completion-zsh" + if [[ ! -f $__KUBECTL_COMPLETION_FILE ]]; then + kubectl completion zsh >! $__KUBECTL_COMPLETION_FILE + fi -if [[ ! -f "$KUBECTL_COMPLETION_FILENAME" ]] -then - kubectl completion zsh > "$KUBECTL_COMPLETION_FILENAME" -fi + [[ -f $__KUBECTL_COMPLETION_FILE ]] && source $__KUBECTL_COMPLETION_FILE -if [ $commands[kubectl] ]; then - source "$KUBECTL_COMPLETION_FILENAME" + unset __KUBECTL_COMPLETION_FILE fi # This command is used ALOT both below and in daily life