Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save r-i-c-h/64655fbeb116be7e52e0cf03c1af30a9 to your computer and use it in GitHub Desktop.
Save r-i-c-h/64655fbeb116be7e52e0cf03c1af30a9 to your computer and use it in GitHub Desktop.
My Colorful git-Status-aware prompt setup in my .bash_profile
# CRAZY COLORED NEW PROMPT w/repo Branch and Status:
# get current branch in git repo
function parse_git_branch() {
BRANCH=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
if [ ! "${BRANCH}" == "" ]
then
STAT=`parse_git_dirty`
echo "[${BRANCH}${STAT}]"
else
echo ""
fi
}
# get current status of git repo
function parse_git_dirty {
status=`git status 2>&1 | tee`
dirty=`echo -n "${status}" 2> /dev/null | grep "modified:" &> /dev/null; echo "$?"`
untracked=`echo -n "${status}" 2> /dev/null | grep "Untracked files" &> /dev/null; echo "$?"`
ahead=`echo -n "${status}" 2> /dev/null | grep "Your branch is ahead of" &> /dev/null; echo "$?"`
newfile=`echo -n "${status}" 2> /dev/null | grep "new file:" &> /dev/null; echo "$?"`
renamed=`echo -n "${status}" 2> /dev/null | grep "renamed:" &> /dev/null; echo "$?"`
deleted=`echo -n "${status}" 2> /dev/null | grep "deleted:" &> /dev/null; echo "$?"`
bits=''
if [ "${renamed}" == "0" ]; then
bits=">${bits}"
fi
if [ "${ahead}" == "0" ]; then
bits="*${bits}"
fi
if [ "${newfile}" == "0" ]; then
bits="+${bits}"
fi
if [ "${untracked}" == "0" ]; then
bits="?${bits}"
fi
if [ "${deleted}" == "0" ]; then
bits="x${bits}"
fi
if [ "${dirty}" == "0" ]; then
bits="!${bits}"
fi
if [ ! "${bits}" == "" ]; then
echo " ${bits}"
else
echo ""
fi
}
export PS1="\[\e[34m\]\h\[\e[m\]\[\e[34m\]:\[\e[m\]\[\e[36m\]\w\[\e[m\]\[\e[32m\]/\n╠\`parse_git_branch\`\[\e[m\]\[\e[33m\]\\$>\[\e[m\] "
# /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
# OLD STYLE I USED TO USE:
# /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
# PROMPT STUFF TO CHANGE PROMPT --->>>
# \W is full path, \w is working dir, \u user, \h current hostname
# BLACK=$(tput setaf 0);
# RED=$(tput setaf 1);
# GREEN=$(tput setaf 2);
# YELLOW=$(tput setaf 3);
# BLUE=$(tput setaf 4);
# MAGENTA=$(tput setaf 5);
# CYAN=$(tput setaf 6);
# WHITE=$(tput setaf 7);
# GREEN=$(tput setaf 2);
# YELLOW=$(tput setaf 3);
# WHITE=$(tput setaf 7);
# RESET=$(tput sgr0);
# /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
# ORIG PROMPT: export PS1="\h:\\w>\$ "
# REV PROMPT: export PS1="[\u]\h:\w $ "
# #Default Prompt
# PS1="${CYAN}\w${BLUE}\$(git_branch)${RESET}\n⫸ $ ";
# # PS1="${YELLOW}\w${GREEN}\$(git_branch)${RESET}\n${EMOJI} $ ";
# # PS1="\n▲ "
# # PS1="\n${EMOJI} "
# function git_branch {
# # Shows the current branch if in a git repository
# git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\ \(\1\)/';
# }
# /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment