|
1 | 1 | # shellcheck shell=bash
|
2 | 2 | # shellcheck disable=SC2034 # Expected behavior for themes.
|
3 |
| -# shellcheck disable=SC2154 #TODO: fix these all. |
4 | 3 |
|
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?})" |
9 | 8 |
|
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?})" |
14 | 13 |
|
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}" |
18 | 17 |
|
19 |
| -venv_prompt() { |
| 18 | +function venv_prompt() { |
20 | 19 | python_venv=""
|
21 | 20 | # 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}) " |
24 | 23 | elif [[ -n "${VIRTUAL_ENV}" ]]; then
|
25 |
| - python_venv="($PYTHON_VENV_CHAR$(basename "${VIRTUAL_ENV}")) " |
| 24 | + python_venv="(${PYTHON_VENV_CHAR}${VIRTUAL_ENV##*/}) " |
26 | 25 | fi
|
27 | 26 | [[ -n "${python_venv}" ]] && echo "${python_venv}"
|
28 | 27 | }
|
29 | 28 |
|
30 | 29 | 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}" |
34 | 42 | }
|
35 | 43 |
|
36 | 44 | safe_append_prompt_command prompt_command
|
0 commit comments