diff --git a/files/shell/.bashrc b/files/shell/.bashrc new file mode 100644 index 0000000..83e061b --- /dev/null +++ b/files/shell/.bashrc @@ -0,0 +1,44 @@ +# ~/.bashrc +# +# M. Thomas + +# if not running interactively, don't do anything +case $- in + *i*) ;; + *) return ;; +esac + +# ============================== Prompt +git_branch() { + if $(git rev-parse --git-dir > /dev/null 2>&1); then + local branch_name=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/') + echo "${branch_name}  " + fi +} + +HOST="\[\033[0;33m\]\h\[\033[m\]" +GIT="\[\033[0;31m\]\$(git_branch)\[\033[m\]" +DIR="\[\033[0;34m\]\w\[\033[m\]" + +PROMPT_COMMAND=__prompt_command +__prompt_command() { + local EXIT="$?" + export PS1="${HOST} ${DIR} ${GIT}" + + local red_lambda='\[\033[0;31m\]λ>\[\033[00m\] ' + local green_lambda='\[\033[0;32m\]λ>\[\033[00m\] ' + + if [ $EXIT != 0 ] + then + PS1+=$red_lambda + else + PS1+=$green_lambda + fi +} + +# ============================== vi-Mode +set -o vi + +# ============================== Source other definitions +[ -f ~/.shellrc.local ] && source ~/.shellrc.local +[ -f ~/.shellrc.alias ] && source ~/.shellrc.alias