26 lines
1,001 B
Bash
26 lines
1,001 B
Bash
#!/usr/bin/env bash
|
|
|
|
export COFFEE_PROMPT_GREEN="\033[0;32m" \
|
|
COFFEE_PROMPT_RED="\033[0;31m" \
|
|
COFFEE_PROMPT_RESTORE="\033[0m" \
|
|
PROMPT_COMMAND="baz_coffee_prompt"
|
|
|
|
baz_coffee_prompt() {
|
|
local c_status="$?" \
|
|
git \
|
|
venv="${VIRTUAL_ENV##*/}" \
|
|
dir='\W' \
|
|
prompt_char="${COFFEE_ROOT_CHAR:-#}" \
|
|
user_colour="${COFFEE_CLR_USER:-${COFFEE_PROMPT_GREEN}}" \
|
|
extra
|
|
|
|
git="$(git rev-parse --abbrev-ref HEAD 2>/dev/null || true)"
|
|
|
|
[ $UID != '0' ] && prompt_char="${COFFEE_USER_CHAR:-%}"
|
|
[ $c_status != '0' ] && local propt_colour="${COFFEE_CLR_ERR:-${COFFEE_PROMPT_RED}}$c_status "
|
|
[ "$git" ] && dir="($git) $dir"
|
|
[ "$venv" ] && extra="{${COFFEE_CLR_VENV:-${COFFEE_PROMPT_GREEN}}$venv${COFFEE_PROMPT_RESTORE}} "
|
|
[ $UID == '0' ] && user_colour="${COFFEE_CLR_ROOT:-${COFFEE_PROMPT_RED}}"
|
|
|
|
export PS1="\n${extra}${user_colour}\u${COFFEE_PROMPT_RESTORE}@\h ${dir} ${propt_colour}${prompt_char}${COFFEE_PROMPT_RESTORE} "
|
|
}
|