Skip to content

Commit 18a8504

Browse files
committed
theme/purity: SC2154
Handle all unbound parameters, even colors!
1 parent d460318 commit 18a8504

File tree

1 file changed

+27
-19
lines changed

1 file changed

+27
-19
lines changed

themes/purity/purity.theme.bash

Lines changed: 27 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,44 @@
11
# shellcheck shell=bash
22
# shellcheck disable=SC2034 # Expected behavior for themes.
3-
# shellcheck disable=SC2154 #TODO: fix these all.
43

5-
SCM_THEME_PROMPT_DIRTY=" ${bold_red}${normal}"
6-
SCM_THEME_PROMPT_CLEAN=" ${bold_green}${normal}"
7-
SCM_THEME_PROMPT_PREFIX="${reset_color}( "
8-
SCM_THEME_PROMPT_SUFFIX=" ${reset_color})"
4+
SCM_THEME_PROMPT_DIRTY=" ${bold_red?}${normal?}"
5+
SCM_THEME_PROMPT_CLEAN=" ${bold_green?}${normal?}"
6+
SCM_THEME_PROMPT_PREFIX="${reset_color?}( "
7+
SCM_THEME_PROMPT_SUFFIX=" ${reset_color?})"
98

10-
GIT_THEME_PROMPT_DIRTY=" ${bold_red}${normal}"
11-
GIT_THEME_PROMPT_CLEAN=" ${bold_green}${normal}"
12-
GIT_THEME_PROMPT_PREFIX="${reset_color}( "
13-
GIT_THEME_PROMPT_SUFFIX=" ${reset_color})"
9+
GIT_THEME_PROMPT_DIRTY=" ${bold_red?}${normal?}"
10+
GIT_THEME_PROMPT_CLEAN=" ${bold_green?}${normal?}"
11+
GIT_THEME_PROMPT_PREFIX="${reset_color?}( "
12+
GIT_THEME_PROMPT_SUFFIX=" ${reset_color?})"
1413

15-
STATUS_THEME_PROMPT_BAD="${bold_red}${reset_color}${normal} "
16-
STATUS_THEME_PROMPT_OK="${bold_green}${reset_color}${normal} "
17-
PURITY_THEME_PROMPT_COLOR="${PURITY_THEME_PROMPT_COLOR:=$blue}"
14+
STATUS_THEME_PROMPT_BAD="${bold_red?}${reset_color?}${normal?} "
15+
STATUS_THEME_PROMPT_OK="${bold_green?}${reset_color?}${normal?} "
16+
: "${PURITY_THEME_PROMPT_COLOR:=$blue}"
1817

19-
venv_prompt() {
18+
function venv_prompt() {
2019
python_venv=""
2120
# Detect python venv
22-
if [[ -n "${CONDA_DEFAULT_ENV}" ]]; then
23-
python_venv="($PYTHON_VENV_CHAR${CONDA_DEFAULT_ENV}) "
21+
if [[ -n "${CONDA_DEFAULT_ENV:-}" ]]; then
22+
python_venv="(${PYTHON_VENV_CHAR}${CONDA_DEFAULT_ENV}) "
2423
elif [[ -n "${VIRTUAL_ENV}" ]]; then
25-
python_venv="($PYTHON_VENV_CHAR$(basename "${VIRTUAL_ENV}")) "
24+
python_venv="(${PYTHON_VENV_CHAR}${VIRTUAL_ENV##*/}) "
2625
fi
2726
[[ -n "${python_venv}" ]] && echo "${python_venv}"
2827
}
2928

3029
function prompt_command() {
31-
local retval=$? ret_status
32-
ret_status="$([ $retval -eq 0 ] && echo -e "$STATUS_THEME_PROMPT_OK" || echo -e "$STATUS_THEME_PROMPT_BAD")"
33-
PS1="\n${PURITY_THEME_PROMPT_COLOR}\w $(scm_prompt_info)\n${ret_status}$(venv_prompt)"
30+
local retval="$?" ret_status python_venv scm_prompt_info venv_prompt
31+
case "${retval}" in
32+
0)
33+
ret_status="$STATUS_THEME_PROMPT_OK"
34+
;;
35+
*)
36+
ret_status="$STATUS_THEME_PROMPT_BAD"
37+
;;
38+
esac
39+
scm_prompt_info="$(scm_prompt_info)"
40+
venv_prompt="$(venv_prompt)"
41+
PS1="\n${PURITY_THEME_PROMPT_COLOR}\w ${scm_prompt_info}\n${ret_status}${venv_prompt}"
3442
}
3543

3644
safe_append_prompt_command prompt_command

0 commit comments

Comments
 (0)