@@ -41,6 +41,7 @@ KUBE_PS1_DISABLE_PATH="${HOME}/.kube/kube-ps1/disabled"
4141KUBE_PS1_LAST_TIME=0
4242KUBE_PS1_CLUSTER_FUNCTION=" ${KUBE_PS1_CLUSTER_FUNCTION} "
4343KUBE_PS1_NAMESPACE_FUNCTION=" ${KUBE_PS1_NAMESPACE_FUNCTION} "
44+ KUBE_PS1_ENV_CACHEFILE=" ${HOME} /.kube-ps1.envs"
4445
4546# Determine our shell
4647if [ " ${ZSH_VERSION-} " ]; then
@@ -63,6 +64,7 @@ _kube_ps1_init() {
6364 add-zsh-hook precmd _kube_ps1_update_cache
6465 zmodload -F zsh/stat b:zstat
6566 zmodload zsh/datetime
67+ _kube_load_vars_from_file
6668 ;;
6769 " bash" )
6870 _KUBE_PS1_OPEN_ESC=$' \001 '
@@ -74,6 +76,20 @@ _kube_ps1_init() {
7476 esac
7577}
7678
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+
7793_kube_ps1_color_fg () {
7894 local KUBE_PS1_FG_CODE
7995 case " ${1} " in
@@ -212,6 +228,7 @@ _kube_ps1_update_cache() {
212228 # User changed KUBECONFIG; unconditionally refetch.
213229 KUBE_PS1_KUBECONFIG_CACHE=${KUBECONFIG}
214230 _kube_ps1_get_context_ns
231+ _kube_ps1_update_cachefile
215232 return
216233 fi
217234
@@ -222,6 +239,7 @@ _kube_ps1_update_cache() {
222239 [[ -r " ${conf} " ]] || continue
223240 if _kube_ps1_file_newer_than " ${conf} " " ${KUBE_PS1_LAST_TIME} " ; then
224241 _kube_ps1_get_context_ns
242+ _kube_ps1_update_cachefile
225243 return
226244 fi
227245 done
0 commit comments