|
#git info |
|
|
|
# return ??MAD |
|
function get_git_diff { |
|
GIT_STATUS="`git status -s 2>/dev/null|cut -c 1,2`" |
|
if [ "$GIT_STATUS" ]; then |
|
GIT_MOD_F="`printf "$GIT_STATUS"|cut -c-2|tr "??" "?"|tr -d " "|sort -u|tr -d "\n"`" |
|
printf "$GIT_MOD_F" |
|
fi |
|
} |
|
|
|
# return branch name |
|
function get_git_branch { |
|
GIT_BRANCH="`git branch 2>/dev/null|grep -e ^* | tr -d \*\ `" |
|
if [ "$GIT_BRANCH" ]; then |
|
printf "$GIT_BRANCH" |
|
fi |
|
} |
|
|
|
|
|
# FROM https://wiki.archlinux.org/index.php/Color_Bash_Prompt#From_Arch_Forum_.231 |
|
|
|
bash_prompt() { |
|
case $TERM in |
|
xterm*|rxvt*) |
|
local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]' |
|
;; |
|
*) |
|
local TITLEBAR="" |
|
;; |
|
esac |
|
local NONE="\[\033[0m\]" # unsets color to term's fg color |
|
|
|
# regular colors |
|
local K="\[\033[0;30m\]" # black |
|
local R="\[\033[0;31m\]" # red |
|
local G="\[\033[0;32m\]" # green |
|
local Y="\[\033[0;33m\]" # yellow |
|
local B="\[\033[0;34m\]" # blue |
|
local M="\[\033[0;35m\]" # magenta |
|
local C="\[\033[0;36m\]" # cyan |
|
local W="\[\033[0;37m\]" # white |
|
|
|
# emphasized (bolded) colors |
|
local EMK="\[\033[1;30m\]" |
|
local EMR="\[\033[1;31m\]" |
|
local EMG="\[\033[1;32m\]" |
|
local EMY="\[\033[1;33m\]" |
|
local EMB="\[\033[1;34m\]" |
|
local EMM="\[\033[1;35m\]" |
|
local EMC="\[\033[1;36m\]" |
|
local EMW="\[\033[1;37m\]" |
|
|
|
# background colors |
|
local BGK="\[\033[40m\]" |
|
local BGR="\[\033[41m\]" |
|
local BGG="\[\033[42m\]" |
|
local BGY="\[\033[43m\]" |
|
local BGB="\[\033[44m\]" |
|
local BGM="\[\033[45m\]" |
|
local BGC="\[\033[46m\]" |
|
local BGW="\[\033[47m\]" |
|
|
|
local BC=${B} # brachs color |
|
[ "$(get_git_branch)" == "master" ] && BC=${R} # master branch color |
|
|
|
local SEP="$EMB\342\224\200" |
|
local BR="\n$EMB\342\224\224${SEP} > " |
|
local DOWN="$EMB\342\224\214" |
|
local BEG=" $EMB[" |
|
local ENDY="$EMB] " |
|
local AT="@" |
|
|
|
local USER_AT="${DOWN}${SEP}${BEG}${G}\u${AT}\h${ENDY}" |
|
local GIT_STAT="${SEP}${BEG}${BC}$(get_git_branch):${Y}$(get_git_diff)${ENDY}" |
|
local HISTORY="${SEP}${BEG}${G}!\!${ENDY}" |
|
local DIR="${BR}${Y}\w${NONE} $ " |
|
PS1="${TITLEBAR}${USER_AT}${GIT_STAT}${HISTORY}${DIR}" |
|
} |
|
|
|
PROMPT_COMMAND=bash_prompt |