diff --git a/themes/90210/90210.theme.bash b/themes/90210/90210.theme.bash new file mode 100644 index 00000000..e683e0ef --- /dev/null +++ b/themes/90210/90210.theme.bash @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +SCM_THEME_PROMPT_DIRTY=" ${red}✗" +SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓" +SCM_THEME_PROMPT_PREFIX=" |" +SCM_THEME_PROMPT_SUFFIX="${green}|" + +GIT_THEME_PROMPT_DIRTY=" ${red}✗" +GIT_THEME_PROMPT_CLEAN=" ${bold_green}✓" +GIT_THEME_PROMPT_PREFIX=" ${green}|" +GIT_THEME_PROMPT_SUFFIX="${green}|" + +# Nicely formatted terminal prompt +function prompt_command(){ + export PS1="\n${bold_black}[${blue}\@${bold_black}]-${bold_black}[${green}\u${yellow}@${green}\h${bold_black}]-${bold_black}[${purple}\w${bold_black}]-$(scm_prompt_info)\n${reset_color}\$ " +} + +safe_append_prompt_command prompt_command diff --git a/themes/base.theme.bash b/themes/base.theme.bash index 6d114363..2a567f3c 100644 --- a/themes/base.theme.bash +++ b/themes/base.theme.bash @@ -464,11 +464,22 @@ function aws_profile { } function safe_append_prompt_command { - if [[ -n $1 ]] ; then - case $PROMPT_COMMAND in - *$1*) ;; - "") PROMPT_COMMAND="$1";; - *) PROMPT_COMMAND="$1;$PROMPT_COMMAND";; - esac + local prompt_re + + # Set OS dependent exact match regular expression + if [[ ${OSTYPE} == darwin* ]]; then + # macOS + prompt_re="[[:<:]]${1}[[:>:]]" + else + # Linux, FreeBSD, etc. + prompt_re="\<${1}\>" + fi + + if [[ ${PROMPT_COMMAND} =~ ${prompt_re} ]]; then + return + elif [[ -z ${PROMPT_COMMAND} ]]; then + PROMPT_COMMAND="${1}" + else + PROMPT_COMMAND="${1};${PROMPT_COMMAND}" fi }