From d2816bc1ba173f2c4e82e847b85cd584c778d03d Mon Sep 17 00:00:00 2001 From: Kazuki Suda Date: Fri, 20 Oct 2017 09:17:44 +0900 Subject: [PATCH] Improve 'kubectl completion` to override short flags This commit improves `kubectl completion` to override short flags in addition to long flags. --- pkg/kubectl/cmd/cmd.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkg/kubectl/cmd/cmd.go b/pkg/kubectl/cmd/cmd.go index 8287b198068..c220e04174c 100644 --- a/pkg/kubectl/cmd/cmd.go +++ b/pkg/kubectl/cmd/cmd.go @@ -36,22 +36,22 @@ import ( const ( bashCompletionFunc = `# call kubectl get $1, -__kubectl_override_flag_list=(kubeconfig cluster user context namespace server) +__kubectl_override_flag_list=(--kubeconfig --cluster --user --context --namespace --server -n -s) __kubectl_override_flags() { - local ${__kubectl_override_flag_list[*]} two_word_of of + local ${__kubectl_override_flag_list[*]##*-} two_word_of of var for w in "${words[@]}"; do if [ -n "${two_word_of}" ]; then - eval "${two_word_of}=\"--${two_word_of}=\${w}\"" + eval "${two_word_of##*-}=\"${two_word_of}=\${w}\"" two_word_of= continue fi for of in "${__kubectl_override_flag_list[@]}"; do case "${w}" in - --${of}=*) - eval "${of}=\"${w}\"" + ${of}=*) + eval "${of##*-}=\"${w}\"" ;; - --${of}) + ${of}) two_word_of="${of}" ;; esac @@ -60,9 +60,9 @@ __kubectl_override_flags() namespace="--all-namespaces" fi done - for of in "${__kubectl_override_flag_list[@]}"; do - if eval "test -n \"\$${of}\""; then - eval "echo \${${of}}" + for var in "${__kubectl_override_flag_list[@]##*-}"; do + if eval "test -n \"\$${var}\""; then + eval "echo \${${var}}" fi done }