171 lines
5.4 KiB
Text
171 lines
5.4 KiB
Text
# /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 -> $( 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
|