2013-09-01 18:59:21 -04:00
|
|
|
function enrich_if_not_null {
|
|
|
|
symbol=$1
|
|
|
|
variable=$2
|
|
|
|
if [[ -z "$variable" ]]
|
|
|
|
then
|
|
|
|
flag=${off}
|
|
|
|
else
|
|
|
|
flag=${on}
|
|
|
|
fi
|
|
|
|
PS1="${PS1} ${flag}${symbol}"
|
|
|
|
}
|
|
|
|
|
|
|
|
function enrich_if_equal {
|
|
|
|
symbol=$1
|
|
|
|
variable=$2
|
|
|
|
condition=$3
|
|
|
|
if [[ $variable == "${condition}" ]]
|
|
|
|
then
|
|
|
|
flag=${on}
|
|
|
|
else
|
|
|
|
flag=${off}
|
|
|
|
fi
|
|
|
|
PS1="${PS1} ${flag}${symbol}"
|
|
|
|
}
|
|
|
|
|
|
|
|
function enrich_if_greater_than_zero {
|
|
|
|
symbol=$1
|
|
|
|
variable=$2
|
|
|
|
if [[ $variable -gt 0 ]]
|
|
|
|
then
|
|
|
|
flag=${on}
|
|
|
|
else
|
|
|
|
flag=${off}
|
|
|
|
fi
|
|
|
|
PS1="${PS1} ${flag}${symbol}"
|
|
|
|
}
|
2013-09-01 18:02:16 -04:00
|
|
|
function build_prompt {
|
|
|
|
PS1=""
|
2013-09-01 18:59:21 -04:00
|
|
|
on="\[\033[1;37m\]"
|
|
|
|
off="\[\033[0;30m\]"
|
2013-09-01 18:02:16 -04:00
|
|
|
blinking="\[\033[1;5;17m\]"
|
|
|
|
reset="\[\033[0m\]"
|
|
|
|
|
|
|
|
current_branch=$(git rev-parse --abbrev-ref HEAD 2> /dev/null)
|
2013-09-01 18:59:21 -04:00
|
|
|
enrich_if_not_null "❤" $current_branch
|
|
|
|
enrich_if_equal "⚯" "${current_branch}" "HEAD"
|
2013-09-01 18:02:16 -04:00
|
|
|
|
2013-09-01 18:59:21 -04:00
|
|
|
number_of_modifications=$(git status --short 2> /dev/null|grep --count -e ^\.M)
|
|
|
|
enrich_if_greater_than_zero "✎" "${number_of_modifications}"
|
|
|
|
|
|
|
|
number_of_modifications_cached=$(git status --short 2> /dev/null|grep --count -e ^M)
|
|
|
|
enrich_if_greater_than_zero "→" "${number_of_modifications_cached}"
|
|
|
|
|
|
|
|
number_of_untracked=$(git status --short 2> /dev/null|grep --count -e ^\?\?)
|
|
|
|
enrich_if_greater_than_zero "∿" "${number_of_untracked}"
|
2013-09-01 18:02:16 -04:00
|
|
|
|
|
|
|
|
2013-09-01 18:59:21 -04:00
|
|
|
PS1="${PS1}${reset} ${current_branch}:"
|
2013-09-01 18:02:16 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#PREVIOUS_PROMPT=$PS1
|
|
|
|
PROMPT_COMMAND=build_prompt
|