Last active
June 13, 2018 22:31
Revisions
-
canhnht renamed this gist
May 3, 2017 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
canhnht created this gist
May 2, 2017 .There are no files selected for viewing
This file contains hidden or 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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,147 @@ txtblk='\e[0;30m' # Black - Regular txtred='\e[0;31m' # Red txtgrn='\e[0;32m' # Green txtylw='\e[0;33m' # Yellow txtblu='\e[0;34m' # Blue txtpur='\e[0;35m' # Purple txtcyn='\e[0;36m' # Cyan txtwht='\e[0;37m' # White bldblk='\e[1;30m' # Black - Bold bldred='\e[1;31m' # Red bldgrn='\e[1;32m' # Green bldylw='\e[1;33m' # Yellow bldblu='\e[1;34m' # Blue bldpur='\e[1;35m' # Purple bldcyn='\e[1;36m' # Cyan bldwht='\e[1;37m' # White undblk='\e[4;30m' # Black - Underline undred='\e[4;31m' # Red undgrn='\e[4;32m' # Green undylw='\e[4;33m' # Yellow undblu='\e[4;34m' # Blue undpur='\e[4;35m' # Purple undcyn='\e[4;36m' # Cyan undwht='\e[4;37m' # White bakblk='\e[40m' # Black - Background bakred='\e[41m' # Red badgrn='\e[42m' # Green bakylw='\e[43m' # Yellow bakblu='\e[44m' # Blue bakpur='\e[45m' # Purple bakcyn='\e[46m' # Cyan bakwht='\e[47m' # White txtrst='\e[0m' # Text Reset parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' } # The various escape codes that we can use to color our prompt. RED="\[\033[0;31m\]" YELLOW="\[\033[1;33m\]" GREEN="\[\033[0;32m\]" BLUE="\[\033[1;34m\]" LIGHT_RED="\[\033[1;31m\]" LIGHT_GREEN="\[\033[1;32m\]" WHITE="\[\033[1;37m\]" LIGHT_GRAY="\[\033[0;37m\]" COLOR_NONE="\[\e[0m\]" # Detect whether the current directory is a git repository. function is_git_repository { git branch > /dev/null 2>&1 } # Determine the branch/state information for this git repository. function set_git_branch { # Capture the output of the "git status" command. git_status="$(git status 2> /dev/null)" # Set color based on clean/staged/dirty. if [[ ${git_status} =~ "working directory clean" ]]; then state="${bldgrn}" elif [[ ${git_status} =~ "Changes to be committed" ]]; then state="${bldylw}" else state="${LIGHT_RED}" fi # Set arrow icon based on status against remote. remote_pattern="Your branch is (.*) (of|by|with)" if [[ ${git_status} =~ ${remote_pattern} ]]; then # echo "ofof = ${BASH_REMATCH[1]}" if [[ ${BASH_REMATCH[1]} == ahead* ]]; then remote="↑" elif [[ ${BASH_REMATCH[1]} == behind* ]]; then remote="↓" else remote="--" fi else remote="" fi diverge_pattern="Your branch and (.*) have diverged" if [[ ${git_status} =~ ${diverge_pattern} ]]; then remote="↕" fi # Get the name of the branch. branch_pattern="^(# )?On branch ([^${IFS}]*)" if [[ ${git_status} =~ ${branch_pattern} ]]; then branch=${BASH_REMATCH[2]} fi branch="$(git rev-parse --abbrev-ref HEAD)" # replace all 4 lines with this. # Set the final branch string. # echo "bran ${branch}" BRANCH="${state}(${branch})${remote}${COLOR_NONE} " } # Return the prompt symbol to use, colorized based on the return value of the # previous command. function set_prompt_symbol () { if test $1 -eq 0 ; then PROMPT_SYMBOL="${GREEN}<\$>${COLOR_NONE}" else PROMPT_SYMBOL="${LIGHT_RED}<\$>${COLOR_NONE}" fi } # Determine active Python virtualenv details. function set_virtualenv () { if test -z "$VIRTUAL_ENV" ; then PYTHON_VIRTUALENV="" else PYTHON_VIRTUALENV="${BLUE}[`basename \"$VIRTUAL_ENV\"`]${COLOR_NONE} " fi } # Set the full bash prompt. function set_bash_prompt () { # Set the PROMPT_SYMBOL variable. We do this first so we don't lose the # return value of the last command. set_prompt_symbol $? # Set the PYTHON_VIRTUALENV variable. set_virtualenv # Set the BRANCH variable. if is_git_repository ; then # echo "is git repo" set_git_branch else BRANCH='' fi SHOW_FACE="\`if [ \$? = 0 ]; then echo \[\e[33m\]^_^\[\e[0m\]; else echo \[\e[31m\]O_O\[\e[0m\]; fi\`" PS1="\n${PYTHON_VIRTUALENV}${GREEN}${txtred}\u@\h:${bldcyn}[\w]:${bldgrn}${BRANCH}\n${SHOW_FACE}..${PROMPT_SYMBOL} " } PROMPT_COMMAND=set_bash_prompt