Created
June 22, 2020 04:43
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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