diff --git a/themes/nwinkler/nwinkler.theme.bash b/themes/nwinkler/nwinkler.theme.bash new file mode 100644 index 00000000..b8bcc226 --- /dev/null +++ b/themes/nwinkler/nwinkler.theme.bash @@ -0,0 +1,47 @@ +#!/bin/bash + +# Two line prompt showing the following information: +# (time) SCM [username@hostname] pwd (SCM branch SCM status) +# → +# +# Example: +# (14:00:26) ± [foo@bar] ~/.bash_it (master ✓) +# → +# +# The arrow on the second line is showing the exit status of the last command: +# * Green: 0 exit status +# * Red: non-zero exit status +# +# The exit code functionality currently doesn't work if you are using the 'fasd' plugin, +# since 'fasd' is messing with the $PROMPT_COMMAND + + +PROMPT_END_CLEAN="${green}→${reset_color}" +PROMPT_END_DIRTY="${red}→${reset_color}" + +function prompt_end() { + echo -e "$PROMPT_END" +} + +prompt_setter() { + local exit_status=$? + if [[ $exit_status -eq 0 ]]; then PROMPT_END=$PROMPT_END_CLEAN + else PROMPT_END=$PROMPT_END_DIRTY + fi + # Save history + history -a + history -c + history -r + PS1="(\t) $(scm_char) [${blue}\u${reset_color}@${green}\H${reset_color}] ${yellow}\w${reset_color}$(scm_prompt_info) ${reset_color}\n$(prompt_end) " + PS2='> ' + PS4='+ ' +} + +PROMPT_COMMAND=prompt_setter + +SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗${normal}" +SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓${normal}" +SCM_THEME_PROMPT_PREFIX=" (" +SCM_THEME_PROMPT_SUFFIX=")" +RVM_THEME_PROMPT_PREFIX=" (" +RVM_THEME_PROMPT_SUFFIX=")"