adding git details to bash prompt. fixes #2
This commit is contained in:
parent
57d749b04a
commit
9d30e171e4
1 changed files with 33 additions and 1 deletions
34
bash/.bashrc
34
bash/.bashrc
|
@ -66,9 +66,41 @@ sh_yellow="\[\033[1;33m\]"
|
|||
sh_light_gray="\[\033[0;37m\]"
|
||||
sh_white="\[\033[1;37m\]"
|
||||
|
||||
function git_prompt {
|
||||
PCHANGED=""
|
||||
PAHEAD=""
|
||||
PBEHIND=""
|
||||
local FULL_BRANCH="$(git symbolic-ref -q HEAD 2>/dev/null || git name-rev --name-only --no-undefined --always HEAD 2>/dev/null)"
|
||||
PBRANCH="$(echo $FULL_BRANCH | sed 's/refs\/heads\///')"
|
||||
if [ -n $PBRANCH ]; then
|
||||
echo -n "${PBRANCH} "
|
||||
# Are there unstaged changes in the working directory
|
||||
local CHANGED=$(git status --porcelain --ignore-submodule -unormal 2>/dev/null | wc -l)
|
||||
if [ $CHANGED -gt 0 ]; then
|
||||
PCHANGED="◊"
|
||||
fi
|
||||
# Are we behind the origin?
|
||||
local NUM_BEHIND="$(git log --oneline ..@{u} 2>/dev/null | wc -l | tr -d ' ' )"
|
||||
if [ "$NUM_BEHIND" -gt 0 ]; then
|
||||
PBEHIND="↓"
|
||||
fi
|
||||
# Are we ahead of the origin?
|
||||
local NUM_AHEAD="$(git log --oneline @{u}.. 2>/dev/null | wc -l | tr -d ' ')"
|
||||
if [ "$NUM_AHEAD" -gt 0 ]; then
|
||||
PAHEAD="↑"
|
||||
fi
|
||||
|
||||
if [[ -n $PCHANGED || -n $PAHEAD || -n $PBEHIND ]]; then
|
||||
echo -n "${PCHANGED}${PBEHIND}${PAHEAD}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Make a pretty prompt.
|
||||
export PROMPT_COMMAND='history -a; if [ $? -ne 0 ];then ERROR_FLAG=1;else ERROR_FLAG=;fi;'
|
||||
export PS1=${HOSTCOLOUR}${sh_light_gray}'\t | \h'${sh_green}':\w'${sh_light_gray}' '${sh_light_gray}'${ERROR_FLAG:+'${sh_light_red}'}\$ '${sh_norm}
|
||||
export PS1=${HOSTCOLOUR}${sh_light_gray}'\t | \h'${sh_green}':\w'${sh_light_gray}' $(git_prompt)'${sh_light_gray}'${ERROR_FLAG:+'${sh_light_red}'}\$ '${sh_norm}
|
||||
|
||||
# New files and folders should not be world readable
|
||||
umask 0027
|
||||
|
|
Loading…
Reference in a new issue