From 8cac5c8d2dad6af91ef19f296bfdbe3ead218a5f Mon Sep 17 00:00:00 2001 From: AngeD Date: Fri, 21 Jul 2023 11:57:23 +0200 Subject: [PATCH] feat: kxn choose kubectl version + ns completion --- .config/zsh/.kubectl_aliases | 14 +++++++++----- .config/zsh/completions/_kxn | 12 ++++++++++++ 2 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 .config/zsh/completions/_kxn diff --git a/.config/zsh/.kubectl_aliases b/.config/zsh/.kubectl_aliases index a071c88..d96eabb 100644 --- a/.config/zsh/.kubectl_aliases +++ b/.config/zsh/.kubectl_aliases @@ -14,13 +14,17 @@ function kxn() { 1="$(echo - "$1" | tr -c '[:alnum:]-_' '[ *]')" - local ctx="$(echo - "$1" | awk '{print $1}')" - local ns="${2-$(echo - "$1" | awk '{print $2}')}" + local ctx="$(echo - "$1" | awk '{print $1}')"; ctx="${ctx:l}" + local ns="${2-$(echo - "$1" | awk '{print $2}')}"; ns="${ns:l}" - kubectx ${ctx:l} - [ -n "$ns" ] && kubens "${ns:l}" + [ "$ctx" = hrmn ] \ + && ln -sf /usr/local/bin/k1.18 /var/tmp/kubectl \ + || ln -sf /usr/bin/kubectl /var/tmp/kubectl + + kubectx "$ctx" + [ -n "$ns" ] && kubens "$ns" } -compdef _kubectx kxn +alias kubectl='/var/tmp/kubectl' alias kns='kubens' alias k='kubectl' diff --git a/.config/zsh/completions/_kxn b/.config/zsh/completions/_kxn new file mode 100644 index 0000000..188bc65 --- /dev/null +++ b/.config/zsh/completions/_kxn @@ -0,0 +1,12 @@ +#compdef kxn + +case "$#words" in + 2) + _arguments "1: :(- $(kubectl config get-contexts -oname))" + ;; + 3) + _arguments "2: :($(kubectl --context "${words[2]}" get namespaces -o=jsonpath='{range .items[*].metadata.name}{@}{"\n"}{end}'))" + ;; + *) + ;; +esac