@@ -41,6 +41,7 @@ KUBE_PS1_DISABLE_PATH="${HOME}/.kube/kube-ps1/disabled"
41
41
KUBE_PS1_LAST_TIME=0
42
42
KUBE_PS1_CLUSTER_FUNCTION=" ${KUBE_PS1_CLUSTER_FUNCTION} "
43
43
KUBE_PS1_NAMESPACE_FUNCTION=" ${KUBE_PS1_NAMESPACE_FUNCTION} "
44
+ KUBE_PS1_ENV_CACHEFILE=" ${HOME} /.kube-ps1.envs"
44
45
45
46
# Determine our shell
46
47
if [ " ${ZSH_VERSION-} " ]; then
@@ -63,6 +64,7 @@ _kube_ps1_init() {
63
64
add-zsh-hook precmd _kube_ps1_update_cache
64
65
zmodload -F zsh/stat b:zstat
65
66
zmodload zsh/datetime
67
+ _kube_load_vars_from_file
66
68
;;
67
69
" bash" )
68
70
_KUBE_PS1_OPEN_ESC=$' \001 '
@@ -74,6 +76,20 @@ _kube_ps1_init() {
74
76
esac
75
77
}
76
78
79
+ _kube_load_vars_from_file () {
80
+ if test -f " $KUBE_PS1_ENV_CACHEFILE " ; then
81
+ source " $KUBE_PS1_ENV_CACHEFILE "
82
+ fi
83
+ }
84
+
85
+ _kube_ps1_update_cachefile () {
86
+ # Cache has been updated, write to file.
87
+ echo " KUBE_PS1_CONTEXT=$KUBE_PS1_CONTEXT " > $KUBE_PS1_ENV_CACHEFILE
88
+ echo " KUBE_PS1_KUBECONFIG_CACHE=$KUBE_PS1_KUBECONFIG_CACHE " >> $KUBE_PS1_ENV_CACHEFILE
89
+ echo " KUBE_PS1_LAST_TIME=$KUBE_PS1_LAST_TIME " >> $KUBE_PS1_ENV_CACHEFILE
90
+ echo " KUBE_PS1_NAMESPACE=$KUBE_PS1_NAMESPACE " >> $KUBE_PS1_ENV_CACHEFILE
91
+ }
92
+
77
93
_kube_ps1_color_fg () {
78
94
local KUBE_PS1_FG_CODE
79
95
case " ${1} " in
@@ -212,6 +228,7 @@ _kube_ps1_update_cache() {
212
228
# User changed KUBECONFIG; unconditionally refetch.
213
229
KUBE_PS1_KUBECONFIG_CACHE=${KUBECONFIG}
214
230
_kube_ps1_get_context_ns
231
+ _kube_ps1_update_cachefile
215
232
return
216
233
fi
217
234
@@ -222,6 +239,7 @@ _kube_ps1_update_cache() {
222
239
[[ -r " ${conf} " ]] || continue
223
240
if _kube_ps1_file_newer_than " ${conf} " " ${KUBE_PS1_LAST_TIME} " ; then
224
241
_kube_ps1_get_context_ns
242
+ _kube_ps1_update_cachefile
225
243
return
226
244
fi
227
245
done
0 commit comments