Skip to content

Commit dd3418e

Browse files
committed
lots of updates. Improve caching for config file changes/deleteions, change some var names to cut down on exports, etc
1 parent c8d6fb0 commit dd3418e

File tree

3 files changed

+119
-85
lines changed

3 files changed

+119
-85
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@
22

33
### [UNRELEASED]
44

5+
## 0.8.0 (11/22/22)
6+
7+
Lots of updates and changes in this long overdue release. Hopefully this summary will include the major
8+
changes over the last few years.
9+
10+
* function name updates to be more descriptive
11+
* added openshift glyph option ([#164](https://github.com/jonmosco/kube-ps1/issues/164))
12+
* Improve caching to account for deleted/missing kube config files ([#118](https://github.com/jonmosco/kube-ps1/issues/118))
513
* Added ability to change the color of `KUBE_PS1_PREFIX` and `KUBE_PS1_SUFFIX` ([#79](https://github.com/jonmosco/kube-ps1/issues/79))
614
* Added option to turn off image padding. Defaults to `true`. There were some troubles with terminals overlapping the symbol ([#126](https://github.com/jonmosco/kube-ps1/issues/126))
715

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,6 @@ the following environment variables:
187187
| `KUBE_PS1_SYMBOL_PADDING` | `false` | Adds a space (padding) after the symbol to prevent clobbering prompt characters |
188188
| `KUBE_PS1_SYMBOL_DEFAULT` | `` | Default prompt symbol. Unicode `\u2388` |
189189
| `KUBE_PS1_SYMBOL_USE_IMG` | `false` | ☸️ , Unicode `\u2638` as the prompt symbol |
190-
| `KUBE_PS1_SYMBOL_OC` | `` | OpenShift symbol. Unicode `\ue7b7`. Available with a patched font |
191190
| `KUBE_PS1_SEPARATOR` | | | Separator between symbol and context name |
192191
| `KUBE_PS1_DIVIDER` | `:` | Separator between context and namespace |
193192
| `KUBE_PS1_SUFFIX` | `)` | Prompt closing character |

kube-ps1.sh

Lines changed: 111 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,11 @@
2424
# Override these values in ~/.zshrc or ~/.bashrc
2525
KUBE_PS1_BINARY="${KUBE_PS1_BINARY:-kubectl}"
2626
KUBE_PS1_SYMBOL_ENABLE="${KUBE_PS1_SYMBOL_ENABLE:-true}"
27-
KUBE_PS1_SYMBOL_DEFAULT=${KUBE_PS1_SYMBOL_DEFAULT:-$'\u2388'}
27+
_KUBE_PS1_SYMBOL_DEFAULT=${_KUBE_PS1_SYMBOL_DEFAULT:-$'\u2388'}
2828
KUBE_PS1_SYMBOL_PADDING="${KUBE_PS1_SYMBOL_PADDING:-false}"
2929
KUBE_PS1_SYMBOL_USE_IMG="${KUBE_PS1_SYMBOL_USE_IMG:-false}"
30-
# KUBE_PS1_SYMBOL_OC="${KUBE_PS1_SYMBOL_OC:-}"
3130
KUBE_PS1_SYMBOL_OC_IMG="${KUBE_PS1_SYMBOL_OC_IMG:-false}"
32-
KUBE_PS1_SYMBOL_OC=${KUBE_PS1_SYMBOL_OC:-$'\ue7b7'}
31+
_KUBE_PS1_SYMBOL_OC=${KUBE_PS1_SYMBOL_OC:-$'\ue7b7'}
3332

3433
KUBE_PS1_NS_ENABLE="${KUBE_PS1_NS_ENABLE:-true}"
3534
KUBE_PS1_CONTEXT_ENABLE="${KUBE_PS1_CONTEXT_ENABLE:-true}"
@@ -43,31 +42,37 @@ KUBE_PS1_CTX_COLOR="${KUBE_PS1_CTX_COLOR-red}"
4342
KUBE_PS1_NS_COLOR="${KUBE_PS1_NS_COLOR-cyan}"
4443
KUBE_PS1_BG_COLOR="${KUBE_PS1_BG_COLOR}"
4544

46-
KUBE_PS1_KUBECONFIG_CACHE="${KUBECONFIG}"
47-
KUBE_PS1_DISABLE_PATH="${HOME}/.kube/kube-ps1/disabled"
48-
KUBE_PS1_LAST_TIME=0
4945
KUBE_PS1_CLUSTER_FUNCTION="${KUBE_PS1_CLUSTER_FUNCTION}"
5046
KUBE_PS1_NAMESPACE_FUNCTION="${KUBE_PS1_NAMESPACE_FUNCTION}"
5147

48+
_KUBE_PS1_KUBECONFIG_CACHE="${KUBECONFIG}"
49+
_KUBE_PS1_DISABLE_PATH="${HOME}/.kube/kube-ps1/disabled"
50+
_KUBE_PS1_LAST_TIME=0
51+
5252
# Determine our shell
53-
if [ "${ZSH_VERSION-}" ]; then
54-
KUBE_PS1_SHELL="zsh"
55-
elif [ "${BASH_VERSION-}" ]; then
56-
KUBE_PS1_SHELL="bash"
57-
fi
53+
_kube_ps1_shell_type() {
54+
local _KUBE_PS1_SHELL_TYPE
55+
56+
if [ "${ZSH_VERSION-}" ]; then
57+
_KUBE_PS1_SHELL_TYPE="zsh"
58+
elif [ "${BASH_VERSION-}" ]; then
59+
_KUBE_PS1_SHELL_TYPE="bash"
60+
fi
61+
echo $_KUBE_PS1_SHELL_TYPE
62+
}
5863

5964
_kube_ps1_init() {
60-
[[ -f "${KUBE_PS1_DISABLE_PATH}" ]] && KUBE_PS1_ENABLED=off
65+
[[ -f "${_KUBE_PS1_DISABLE_PATH}" ]] && KUBE_PS1_ENABLED=off
6166

62-
case "${KUBE_PS1_SHELL}" in
67+
case "$(_kube_ps1_shell_type)" in
6368
"zsh")
6469
_KUBE_PS1_OPEN_ESC="%{"
6570
_KUBE_PS1_CLOSE_ESC="%}"
6671
_KUBE_PS1_DEFAULT_BG="%k"
6772
_KUBE_PS1_DEFAULT_FG="%f"
6873
setopt PROMPT_SUBST
6974
autoload -U add-zsh-hook
70-
add-zsh-hook precmd _kube_ps1_update_cache
75+
add-zsh-hook precmd _kube_ps1_prompt_update
7176
zmodload -F zsh/stat b:zstat
7277
zmodload zsh/datetime
7378
;;
@@ -76,75 +81,75 @@ _kube_ps1_init() {
7681
_KUBE_PS1_CLOSE_ESC=$'\002'
7782
_KUBE_PS1_DEFAULT_BG=$'\033[49m'
7883
_KUBE_PS1_DEFAULT_FG=$'\033[39m'
79-
[[ $PROMPT_COMMAND =~ _kube_ps1_update_cache ]] || PROMPT_COMMAND="_kube_ps1_update_cache;${PROMPT_COMMAND:-:}"
84+
[[ $PROMPT_COMMAND =~ _kube_ps1_prompt_update ]] || PROMPT_COMMAND="_kube_ps1_prompt_update;${PROMPT_COMMAND:-:}"
8085
;;
8186
esac
8287
}
8388

8489
_kube_ps1_color_fg() {
85-
local KUBE_PS1_FG_CODE
90+
local _KUBE_PS1_FG_CODE
8691
case "${1}" in
87-
black) KUBE_PS1_FG_CODE=0;;
88-
red) KUBE_PS1_FG_CODE=1;;
89-
green) KUBE_PS1_FG_CODE=2;;
90-
yellow) KUBE_PS1_FG_CODE=3;;
91-
blue) KUBE_PS1_FG_CODE=4;;
92-
magenta) KUBE_PS1_FG_CODE=5;;
93-
cyan) KUBE_PS1_FG_CODE=6;;
94-
white) KUBE_PS1_FG_CODE=7;;
92+
black) _KUBE_PS1_FG_CODE=0;;
93+
red) _KUBE_PS1_FG_CODE=1;;
94+
green) _KUBE_PS1_FG_CODE=2;;
95+
yellow) _KUBE_PS1_FG_CODE=3;;
96+
blue) _KUBE_PS1_FG_CODE=4;;
97+
magenta) _KUBE_PS1_FG_CODE=5;;
98+
cyan) _KUBE_PS1_FG_CODE=6;;
99+
white) _KUBE_PS1_FG_CODE=7;;
95100
# 256
96-
[0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-6]) KUBE_PS1_FG_CODE="${1}";;
97-
*) KUBE_PS1_FG_CODE=default
101+
[0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-6]) _KUBE_PS1_FG_CODE="${1}";;
102+
*) _KUBE_PS1_FG_CODE=default
98103
esac
99104

100-
if [[ "${KUBE_PS1_FG_CODE}" == "default" ]]; then
101-
KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_FG}"
105+
if [[ "${_KUBE_PS1_FG_CODE}" == "default" ]]; then
106+
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_FG}"
102107
return
103-
elif [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then
104-
KUBE_PS1_FG_CODE="%F{$KUBE_PS1_FG_CODE}"
105-
elif [[ "${KUBE_PS1_SHELL}" == "bash" ]]; then
108+
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
109+
_KUBE_PS1_FG_CODE="%F{$_KUBE_PS1_FG_CODE}"
110+
elif [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
106111
if tput setaf 1 &> /dev/null; then
107-
KUBE_PS1_FG_CODE="$(tput setaf ${KUBE_PS1_FG_CODE})"
108-
elif [[ $KUBE_PS1_FG_CODE -ge 0 ]] && [[ $KUBE_PS1_FG_CODE -le 256 ]]; then
109-
KUBE_PS1_FG_CODE="\033[38;5;${KUBE_PS1_FG_CODE}m"
112+
_KUBE_PS1_FG_CODE="$(tput setaf ${_KUBE_PS1_FG_CODE})"
113+
elif [[ $_KUBE_PS1_FG_CODE -ge 0 ]] && [[ $_KUBE_PS1_FG_CODE -le 256 ]]; then
114+
_KUBE_PS1_FG_CODE="\033[38;5;${_KUBE_PS1_FG_CODE}m"
110115
else
111-
KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_FG}"
116+
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_FG}"
112117
fi
113118
fi
114-
echo ${_KUBE_PS1_OPEN_ESC}${KUBE_PS1_FG_CODE}${_KUBE_PS1_CLOSE_ESC}
119+
echo ${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_FG_CODE}${_KUBE_PS1_CLOSE_ESC}
115120
}
116121

117122
_kube_ps1_color_bg() {
118-
local KUBE_PS1_BG_CODE
123+
local _KUBE_PS1_BG_CODE
119124
case "${1}" in
120-
black) KUBE_PS1_BG_CODE=0;;
121-
red) KUBE_PS1_BG_CODE=1;;
122-
green) KUBE_PS1_BG_CODE=2;;
123-
yellow) KUBE_PS1_BG_CODE=3;;
124-
blue) KUBE_PS1_BG_CODE=4;;
125-
magenta) KUBE_PS1_BG_CODE=5;;
126-
cyan) KUBE_PS1_BG_CODE=6;;
127-
white) KUBE_PS1_BG_CODE=7;;
125+
black) _KUBE_PS1_BG_CODE=0;;
126+
red) _KUBE_PS1_BG_CODE=1;;
127+
green) _KUBE_PS1_BG_CODE=2;;
128+
yellow) _KUBE_PS1_BG_CODE=3;;
129+
blue) _KUBE_PS1_BG_CODE=4;;
130+
magenta) _KUBE_PS1_BG_CODE=5;;
131+
cyan) _KUBE_PS1_BG_CODE=6;;
132+
white) _KUBE_PS1_BG_CODE=7;;
128133
# 256
129-
[0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-6]) KUBE_PS1_BG_CODE="${1}";;
130-
*) KUBE_PS1_BG_CODE=$'\033[0m';;
134+
[0-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-6]) _KUBE_PS1_BG_CODE="${1}";;
135+
*) _KUBE_PS1_BG_CODE=$'\033[0m';;
131136
esac
132137

133-
if [[ "${KUBE_PS1_BG_CODE}" == "default" ]]; then
134-
KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_BG}"
138+
if [[ "${_KUBE_PS1_BG_CODE}" == "default" ]]; then
139+
_KUBE_PS1_FG_CODE="${_KUBE_PS1_DEFAULT_BG}"
135140
return
136-
elif [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then
137-
KUBE_PS1_BG_CODE="%K{$KUBE_PS1_BG_CODE}"
138-
elif [[ "${KUBE_PS1_SHELL}" == "bash" ]]; then
141+
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
142+
_KUBE_PS1_BG_CODE="%K{$_KUBE_PS1_BG_CODE}"
143+
elif [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
139144
if tput setaf 1 &> /dev/null; then
140-
KUBE_PS1_BG_CODE="$(tput setab ${KUBE_PS1_BG_CODE})"
141-
elif [[ $KUBE_PS1_BG_CODE -ge 0 ]] && [[ $KUBE_PS1_BG_CODE -le 256 ]]; then
142-
KUBE_PS1_BG_CODE="\033[48;5;${KUBE_PS1_BG_CODE}m"
145+
_KUBE_PS1_BG_CODE="$(tput setab ${_KUBE_PS1_BG_CODE})"
146+
elif [[ $_KUBE_PS1_BG_CODE -ge 0 ]] && [[ $_KUBE_PS1_BG_CODE -le 256 ]]; then
147+
_KUBE_PS1_BG_CODE="\033[48;5;${_KUBE_PS1_BG_CODE}m"
143148
else
144-
KUBE_PS1_BG_CODE="${DEFAULT_BG}"
149+
_KUBE_PS1_BG_CODE="${DEFAULT_BG}"
145150
fi
146151
fi
147-
echo ${_KUBE_PS1_OPEN_ESC}${KUBE_PS1_BG_CODE}${_KUBE_PS1_CLOSE_ESC}
152+
echo ${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_BG_CODE}${_KUBE_PS1_CLOSE_ESC}
148153
}
149154

150155
_kube_ps1_binary_check() {
@@ -154,18 +159,18 @@ _kube_ps1_binary_check() {
154159
_kube_ps1_symbol() {
155160
[[ "${KUBE_PS1_SYMBOL_ENABLE}" == false ]] && return
156161

157-
case "${KUBE_PS1_SHELL}" in
162+
case "$(_kube_ps1_shell_type)" in
158163
bash)
159164
if ((BASH_VERSINFO[0] >= 4)) && [[ $'\u2388' != "\\u2388" ]]; then
160-
KUBE_PS1_SYMBOL="${KUBE_PS1_SYMBOL_DEFAULT}"
165+
KUBE_PS1_SYMBOL="${_KUBE_PS1_SYMBOL_DEFAULT}"
161166
KUBE_PS1_SYMBOL_IMG=$'\u2638\ufe0f'
162167
else
163168
KUBE_PS1_SYMBOL=$'\xE2\x8E\x88'
164169
KUBE_PS1_SYMBOL_IMG=$'\xE2\x98\xB8'
165170
fi
166171
;;
167172
zsh)
168-
KUBE_PS1_SYMBOL="${KUBE_PS1_SYMBOL_DEFAULT}"
173+
KUBE_PS1_SYMBOL="${_KUBE_PS1_SYMBOL_DEFAULT}"
169174
KUBE_PS1_SYMBOL_IMG="\u2638";;
170175
*)
171176
KUBE_PS1_SYMBOL="k8s"
@@ -179,7 +184,7 @@ _kube_ps1_symbol() {
179184
# NOTE: this requires a patched "Nerd" font to work
180185
# https://www.nerdfonts.com/
181186
if [[ "${KUBE_PS1_SYMBOL_OC_IMG}" == true ]]; then
182-
KUBE_PS1_SYMBOL="${KUBE_PS1_SYMBOL_OC}"
187+
KUBE_PS1_SYMBOL="${_KUBE_PS1_SYMBOL_OC}"
183188
fi
184189

185190
if [[ "${KUBE_PS1_SYMBOL_PADDING}" == true ]]; then
@@ -190,7 +195,7 @@ _kube_ps1_symbol() {
190195

191196
}
192197

193-
_kube_ps1_split() {
198+
_kube_ps1_split_config() {
194199
type setopt >/dev/null 2>&1 && setopt SH_WORD_SPLIT
195200
local IFS=$1
196201
echo $2
@@ -201,7 +206,7 @@ _kube_ps1_file_newer_than() {
201206
local file=$1
202207
local check_time=$2
203208

204-
if [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then
209+
if [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
205210
# Use zstat '-F %s.%s' to make it compatible with low zsh version (eg: 5.0.2)
206211
mtime=$(zstat +mtime -F %s.%s "${file}")
207212
elif stat -c "%s" /dev/null &> /dev/null; then
@@ -215,7 +220,7 @@ _kube_ps1_file_newer_than() {
215220
[[ "${mtime}" -gt "${check_time}" ]]
216221
}
217222

218-
_kube_ps1_update_cache() {
223+
_kube_ps1_prompt_update() {
219224
local return_code=$?
220225

221226
[[ "${KUBE_PS1_ENABLED}" == "off" ]] && return $return_code
@@ -224,27 +229,35 @@ _kube_ps1_update_cache() {
224229
# No ability to fetch context/namespace; display N/A.
225230
KUBE_PS1_CONTEXT="BINARY-N/A"
226231
KUBE_PS1_NAMESPACE="N/A"
227-
return
232+
return $return_code
228233
fi
229234

230-
if [[ "${KUBECONFIG}" != "${KUBE_PS1_KUBECONFIG_CACHE}" ]]; then
235+
if [[ "${KUBECONFIG}" != "${_KUBE_PS1_KUBECONFIG_CACHE}" ]]; then
231236
# User changed KUBECONFIG; unconditionally refetch.
232-
KUBE_PS1_KUBECONFIG_CACHE=${KUBECONFIG}
237+
_KUBE_PS1_KUBECONFIG_CACHE=${KUBECONFIG}
233238
_kube_ps1_get_context_ns
234-
return
239+
return $return_code
235240
fi
236241

237242
# kubectl will read the environment variable $KUBECONFIG
238243
# otherwise set it to ~/.kube/config
239244
local conf
240-
for conf in $(_kube_ps1_split : "${KUBECONFIG:-${HOME}/.kube/config}"); do
245+
local config_file_cache
246+
247+
for conf in $(_kube_ps1_split_config : "${KUBECONFIG:-${HOME}/.kube/config}"); do
241248
[[ -r "${conf}" ]] || continue
242-
if _kube_ps1_file_newer_than "${conf}" "${KUBE_PS1_LAST_TIME}"; then
249+
config_file_cache+=":${conf}"
250+
if _kube_ps1_file_newer_than "${conf}" "${_KUBE_PS1_LAST_TIME}"; then
243251
_kube_ps1_get_context_ns
244-
return
252+
return $return_code
245253
fi
246254
done
247255

256+
if [[ "${config_file_cache}" != "${_KUBE_PS1_CFGFILES_READ_CACHE}" ]]; then
257+
_kube_ps1_get_context_ns
258+
return $return_code
259+
fi
260+
248261
return $return_code
249262
}
250263

@@ -254,7 +267,7 @@ _kube_ps1_get_context() {
254267
# Set namespace to 'N/A' if it is not defined
255268
KUBE_PS1_CONTEXT="${KUBE_PS1_CONTEXT:-N/A}"
256269

257-
if [[ ! -z "${KUBE_PS1_CLUSTER_FUNCTION}" ]]; then
270+
if [[ -n "${KUBE_PS1_CLUSTER_FUNCTION}" ]]; then
258271
KUBE_PS1_CONTEXT=$($KUBE_PS1_CLUSTER_FUNCTION $KUBE_PS1_CONTEXT)
259272
fi
260273
fi
@@ -263,27 +276,36 @@ _kube_ps1_get_context() {
263276
_kube_ps1_get_ns() {
264277
if [[ "${KUBE_PS1_NS_ENABLE}" == true ]]; then
265278
KUBE_PS1_NAMESPACE="$(${KUBE_PS1_BINARY} config view --minify --output 'jsonpath={..namespace}' 2>/dev/null)"
266-
# Set namespace to 'default' if it is not defined
267-
KUBE_PS1_NAMESPACE="${KUBE_PS1_NAMESPACE:-default}"
279+
KUBE_PS1_NAMESPACE="${KUBE_PS1_NAMESPACE:-N/A}"
268280

269-
if [[ ! -z "${KUBE_PS1_NAMESPACE_FUNCTION}" ]]; then
281+
if [[ -n "${KUBE_PS1_NAMESPACE_FUNCTION}" ]]; then
270282
KUBE_PS1_NAMESPACE=$($KUBE_PS1_NAMESPACE_FUNCTION $KUBE_PS1_NAMESPACE)
271283
fi
272284
fi
273285
}
274286

275287
_kube_ps1_get_context_ns() {
276288
# Set the command time
277-
if [[ "${KUBE_PS1_SHELL}" == "bash" ]]; then
289+
if [[ "$(_kube_ps1_shell_type)" == "bash" ]]; then
278290
if ((BASH_VERSINFO[0] >= 4 && BASH_VERSINFO[1] >= 2)); then
279-
KUBE_PS1_LAST_TIME=$(printf '%(%s)T')
291+
_KUBE_PS1_LAST_TIME=$(printf '%(%s)T')
280292
else
281-
KUBE_PS1_LAST_TIME=$(date +%s)
293+
_KUBE_PS1_LAST_TIME=$(date +%s)
282294
fi
283-
elif [[ "${KUBE_PS1_SHELL}" == "zsh" ]]; then
284-
KUBE_PS1_LAST_TIME=$EPOCHREALTIME
295+
elif [[ "$(_kube_ps1_shell_type)" == "zsh" ]]; then
296+
_KUBE_PS1_LAST_TIME=$EPOCHREALTIME
285297
fi
286298

299+
KUBE_PS1_CONTEXT="${KUBE_PS1_CONTEXT:-N/A}"
300+
KUBE_PS1_NAMESPACE="${KUBE_PS1_NAMESPACE:-N/A}"
301+
302+
# Cache which cfgfiles we can read in case they change.
303+
local conf
304+
_KUBE_PS1_CFGFILES_READ_CACHE=
305+
for conf in $(_kube_ps1_split_config : "${KUBECONFIG:-${HOME}/.kube/config}"); do
306+
[[ -r $conf ]] && _KUBE_PS1_CFGFILES_READ_CACHE+=":$conf"
307+
done
308+
287309
_kube_ps1_get_context
288310
_kube_ps1_get_ns
289311
}
@@ -321,7 +343,7 @@ kubeon() {
321343
if [[ "${1}" == '-h' || "${1}" == '--help' ]]; then
322344
_kubeon_usage
323345
elif [[ "${1}" == '-g' || "${1}" == '--global' ]]; then
324-
rm -f -- "${KUBE_PS1_DISABLE_PATH}"
346+
rm -f -- "${_KUBE_PS1_DISABLE_PATH}"
325347
elif [[ "$#" -ne 0 ]]; then
326348
echo -e "error: unrecognized flag ${1}\\n"
327349
_kubeon_usage
@@ -335,8 +357,8 @@ kubeoff() {
335357
if [[ "${1}" == '-h' || "${1}" == '--help' ]]; then
336358
_kubeoff_usage
337359
elif [[ "${1}" == '-g' || "${1}" == '--global' ]]; then
338-
mkdir -p -- "$(dirname "${KUBE_PS1_DISABLE_PATH}")"
339-
touch -- "${KUBE_PS1_DISABLE_PATH}"
360+
mkdir -p -- "$(dirname "${_KUBE_PS1_DISABLE_PATH}")"
361+
touch -- "${_KUBE_PS1_DISABLE_PATH}"
340362
elif [[ $# -ne 0 ]]; then
341363
echo "error: unrecognized flag ${1}" >&2
342364
_kubeoff_usage
@@ -365,7 +387,12 @@ kube_ps1() {
365387
fi
366388

367389
# Symbol
368-
KUBE_PS1+="$(_kube_ps1_color_fg $KUBE_PS1_SYMBOL_COLOR)$(_kube_ps1_symbol)${KUBE_PS1_RESET_COLOR}"
390+
if [[ "${KUBE_PS1_SYMBOL_OC_IMG}" == true ]]; then
391+
local _KUBE_PS1_OC_SYMBOL_COLOR=red
392+
KUBE_PS1+="$(_kube_ps1_color_fg $_KUBE_PS1_OC_SYMBOL_COLOR)$(_kube_ps1_symbol)${KUBE_PS1_RESET_COLOR}"
393+
else
394+
KUBE_PS1+="$(_kube_ps1_color_fg $KUBE_PS1_SYMBOL_COLOR)$(_kube_ps1_symbol)${KUBE_PS1_RESET_COLOR}"
395+
fi
369396

370397
if [[ -n "${KUBE_PS1_SEPARATOR}" ]] && [[ "${KUBE_PS1_SYMBOL_ENABLE}" == true ]]; then
371398
KUBE_PS1+="${KUBE_PS1_SEPARATOR}"

0 commit comments

Comments
 (0)