feat: kxn choose kubectl version + ns completion
This commit is contained in:
parent
d30a7cacce
commit
8cac5c8d2d
@ -14,13 +14,17 @@
|
|||||||
|
|
||||||
function kxn() {
|
function kxn() {
|
||||||
1="$(echo - "$1" | tr -c '[:alnum:]-_' '[ *]')"
|
1="$(echo - "$1" | tr -c '[:alnum:]-_' '[ *]')"
|
||||||
local ctx="$(echo - "$1" | awk '{print $1}')"
|
local ctx="$(echo - "$1" | awk '{print $1}')"; ctx="${ctx:l}"
|
||||||
local ns="${2-$(echo - "$1" | awk '{print $2}')}"
|
local ns="${2-$(echo - "$1" | awk '{print $2}')}"; ns="${ns:l}"
|
||||||
|
|
||||||
kubectx ${ctx:l}
|
[ "$ctx" = hrmn ] \
|
||||||
[ -n "$ns" ] && kubens "${ns:l}"
|
&& 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 kns='kubens'
|
||||||
alias k='kubectl'
|
alias k='kubectl'
|
||||||
|
12
.config/zsh/completions/_kxn
Normal file
12
.config/zsh/completions/_kxn
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user