# /etc/profile.d/PS1.sh: executed by Bourne-compatible login shells. parse_git_branch() { local BRANCH=$(git branch 2>/dev/null | sed -ne 's/* \(.*\)/ (\1/p') BRANCH="$BRANCH ${BRANCH-->} $( git rev-parse --symbolic-full-name --abbrev-ref @{u} 2>/dev/null ) )" echo $BRANCH } set_label() { local LABEL SSHS=${SSHS-false} LABEL="" # Labels: remote, tmpconfig, screen... if [ ! -z ${SSH_TTY:+x} ]; then #LABEL="${LABEL} \[$On_IRed\]\[$BBlack\]remote\[$Color_Off\]" LABEL="${LABEL} \[$On_IRed\]remote\[$Color_Off\]" fi if $SSHS ; then #LABEL="${LABEL} \[$On_IWhite\]\[$BBlack\]tmpconfig\[$Color_Off\]" LABEL="${LABEL} \[$On_IWhite\]\[$BBlack\]tmpconfig\[$Color_Off\]" fi echo ${LABEL@P} } if [ -x "/usr/bin/getsyssubvol" ]; then if [ "$(/usr/bin/getsyssubvol /)" = "/" ] ; then SYSSUBVOL="" else SYSSUBVOL="[$(/usr/bin/getsyssubvol /)]" fi else SYSSUBVOL="" fi # Reset Color_Off='\e[0m' # Text Reset # Regular Colors Black='\e[0;30m' # Black Red='\e[0;31m' # Red Green='\e[0;32m' # Green Yellow='\e[0;33m' # Yellow Blue='\e[0;34m' # Blue Purple='\e[0;35m' # Purple Cyan='\e[0;36m' # Cyan White='\e[0;37m' # White # Bold BBlack='\e[1;30m' # Black BRed='\e[1;31m' # Red BGreen='\e[1;32m' # Green BYellow='\e[1;33m' # Yellow BBlue='\e[1;34m' # Blue BPurple='\e[1;35m' # Purple BCyan='\e[1;36m' # Cyan BWhite='\e[1;37m' # White # Underline UBlack='\e[4;30m' # Black URed='\e[4;31m' # Red UGreen='\e[4;32m' # Green UYellow='\e[4;33m' # Yellow UBlue='\e[4;34m' # Blue UPurple='\e[4;35m' # Purple UCyan='\e[4;36m' # Cyan UWhite='\e[4;37m' # White # Blinking BLBlack='\e[5;30m' # Black BLRed='\e[5;31m' # Red BLGreen='\e[5;32m' # Green BLYellow='\e[5;33m' # Yellow BLBlue='\e[5;34m' # Blue BLPurple='\e[5;35m' # Purple BLCyan='\e[5;36m' # Cyan BLWhite='\e[5;37m' # White # Background On_Black='\e[40m' # Black On_Red='\e[41m' # Red On_Green='\e[42m' # Green On_Yellow='\e[43m' # Yellow On_Blue='\e[44m' # Blue On_Purple='\e[45m' # Purple On_Cyan='\e[46m' # Cyan On_White='\e[47m' # White # High Intensity IBlack='\e[0;90m' # Black IRed='\e[0;91m' # Red IGreen='\e[0;92m' # Green IYellow='\e[0;93m' # Yellow IBlue='\e[0;94m' # Blue IPurple='\e[0;95m' # Purple ICyan='\e[0;96m' # Cyan IWhite='\e[0;97m' # White # Bold High Intensity BIBlack='\e[1;90m' # Black BIRed='\e[1;91m' # Red BIGreen='\e[1;92m' # Green BIYellow='\e[1;93m' # Yellow BIBlue='\e[1;94m' # Blue BIPurple='\e[1;95m' # Purple BICyan='\e[1;96m' # Cyan BIWhite='\e[1;97m' # White # High Intensity backgrounds On_IBlack='\e[0;100m' # Black On_IRed='\e[0;101m' # Red On_IGreen='\e[0;102m' # Green On_IYellow='\e[0;103m' # Yellow On_IBlue='\e[0;104m' # Blue On_IPurple='\e[0;105m' # Purple On_ICyan='\e[0;106m' # Cyan On_IWhite='\e[0;107m' # White LABEL="" case "$TERM" in xterm*|rxvt*|screen*) case "$TERM" in screen*) SCREEN="(SCREEN) ";; *) SCREEN="";; esac # Labels: remote, tmpconfig, screen... # if [ ! -z ${SSH_TTY:+x} ]; then # LABEL="${LABEL} \[$On_IRed\]\[$BBlack\]remote\[$Color_Off\]" # fi # if $SSHS ; then # LABEL="${LABEL} \[$On_IWhite\]\[$BBlack\]tmpconfig\[$Color_Off\]" # fi # Base prompt # if [ "`id -u`" -eq 0 ]; then # PS1="\[$BRed\]$SCREEN\u@\h \[$BRed\]\[\e[m\]\[$IPurple\](\A)\[\e[m\]$LABEL\n\[$BRed\]${SYSSUBVOL}\w:\$(parse_git_branch) \[\e[m\]\[$BRed\]# " # else # PS1="\[$BIBlue\]$SCREEN\u@\h \[$BIBlue\]\[\e[m\]\[$IPurple\](\A)\[\e[m\]$LABEL\n\[$BIBlue\]${SYSSUBVOL}\w:\$(parse_git_branch) \[\e[m\]\[$BIBlue\]\$ " # fi if [ "`id -u`" -eq 0 ]; then PS1="\[$BRed\]$SCREEN\u@\h \[$BRed\]\[\e[m\]\[$IPurple\](\A)\[\e[m\]\$(set_label)\n\[$BRed\]${SYSSUBVOL}\w:\$(parse_git_branch) \[\e[m\]\[$BRed\]# " else PS1="\[$BIBlue\]$SCREEN\u@\h \[$BIBlue\]\[\e[m\]\[$IPurple\](\A)\[\e[m\]\$(set_label)\n\[$BIBlue\]${SYSSUBVOL}\w:\$(parse_git_branch) \[\e[m\]\[$BIBlue\]\$ " fi RETVAL0="\342\234\223" RETVALN0="\342\234\227 " ;; *) # Labels: remote, tmpconfig, screen... # if [ ! -z ${SSH_TTY:+x} ]; then # LABEL="${LABEL} \[$On_Red\]\[$BWhite\]remote\[$Color_Off\]" # fi # if $SSHS ; then # LABEL="${LABEL} \[$On_White\]\[$BBlack\]tmpconfig\[$Color_Off\]" # fi # Base prompt if [ "`id -u`" -eq 0 ]; then PS1="\[$BRed\][$SYSSUBVOL]\u@\h \[$BIBlue\]\[\e[m\]\[$BIPurple\](\A)\[\e[m\]\[$BBlue\]\$(set_label)\n\[$BRed\]${SYSSUBVOL}\w:\$(parse_git_branch) \$ \[\e[m\]\[$Blue\]" else PS1="\[$BBlue\][$SYSSUBVOL]\u@\h \[$BIBlue\]\[\e[m\]\[$BIPurple\](\A)\[\e[m\]\[$BBlue\]\$(set_label)\n\[$BIBlue\]${SYSSUBVOL}\w:\$(parse_git_branch) \$ \[\e[m\]\[$Blue\]" fi RETVAL0=":)" RETVALN0=":(" ;; esac PS1="( \$? \$(if [[ \$? == 0 ]]; then echo \"\[$Green\]${RETVAL0}\"; else echo \"\[$Red\]${RETVALN0}\"; fi )\[\e[m\]) ${PS1}\[\e[m\]" #trap 'echo -ne "\e[0m"' DEBUG