-
Notifications
You must be signed in to change notification settings - Fork 96
/
Copy pathgeometry_kube
36 lines (28 loc) · 1.2 KB
/
geometry_kube
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# geometry_kube - show kubectl client version and current context/namespace.
geometry_kube_symbol() {
ansi ${GEOMETRY_KUBE_COLOR:=blue} ${GEOMETRY_KUBE_SYMBOL:="⎈"}
}
geometry_kube_namespace() {
local kube_namespace="$(kubectl config view --minify --output "jsonpath={..namespace}" 2> /dev/null)"
ansi ${GEOMETRY_KUBE_NAMESPACE_COLOR:=default} ${kube_namespace:=default}
}
geometry_kube_context() {
local kube_context="$(kubectl config current-context 2> /dev/null)"
ansi ${GEOMETRY_KUBE_CONTEXT_COLOR:=default} ${kube_context}
}
geometry_kube_version() {
[[ $(kubectl version --client --short) =~ 'Client Version: ([0-9a-zA-Z.]+)' ]]
local kube_version=($match[1])
ansi ${GEOMETRY_KUBE_VERSION_COLOR:=default} ${kube_version:=default}
}
(( $+commands[kubectl] )) || return
( ${GEOMETRY_KUBE_PIN:=true} ) || return
( ${GEOMETRY_KUBE_PIN:=false} ) || [[ -n "$KUBECONFIG" ]] || [[ -n "$(kubectl config current-context 2> /dev/null)" ]] || return
local geometry_kube_details && geometry_kube_details=(
$(geometry_kube_symbol)
$(geometry_kube_context)
$(geometry_kube_namespace)
$(geometry_kube_version)
)
local separator=${GEOMETRY_KUBE_SEPARATOR:-"|"}
echo -n ${(pj.$separator.)geometry_kube_details}