2020-01-14 10:11:36 +01:00
|
|
|
# /etc/profile.d/PS1.sh: executed by Bourne-compatible login shells.
|
|
|
|
|
|
|
|
parse_git_branch() {
|
2020-07-14 08:37:43 +02:00
|
|
|
# local git-branch
|
2020-07-14 08:23:59 +02:00
|
|
|
local LBRANCH="$(git branch 2>/dev/null | sed -ne 's/* \(.*\)/ \1/p'|sed -e 's/^[[:blank:]]*//;s/[[:blank:]]*$//')"
|
2020-07-14 08:37:43 +02:00
|
|
|
# remote git-branch
|
2020-07-14 00:54:59 +02:00
|
|
|
local RBRANCH="$( git rev-parse --symbolic-full-name --abbrev-ref @{u} 2>/dev/null |sed -e 's/^[[:blank:]]*//' )"
|
2020-07-14 08:37:43 +02:00
|
|
|
# unset RBRANCH if it is empty
|
2020-07-14 00:46:43 +02:00
|
|
|
[ -z "${RBRANCH-x}" ] && unset RBRANCH
|
2020-07-14 00:54:59 +02:00
|
|
|
local BRANCH="${LBRANCH}${RBRANCH+ -> }${RBRANCH}"
|
2020-07-14 08:25:20 +02:00
|
|
|
[ -z "${BRANCH-x}" ] || echo "($BRANCH)"|tr -s '()'
|
2024-01-10 21:22:12 +01:00
|
|
|
return 0
|
2020-01-14 10:11:36 +01:00
|
|
|
}
|
|
|
|
|
2020-07-09 22:10:31 +02:00
|
|
|
set_label() {
|
2024-09-26 18:07:06 +02:00
|
|
|
local LABEL=""
|
2020-07-09 22:36:07 +02:00
|
|
|
|
2020-07-09 22:10:31 +02:00
|
|
|
# Labels: remote, tmpconfig, screen...
|
|
|
|
if [ ! -z ${SSH_TTY:+x} ]; then
|
2024-09-26 18:07:06 +02:00
|
|
|
LABEL="${LABEL} ${On_IRed}${BLBlack}remote${Color_Off}"
|
2020-07-09 22:10:31 +02:00
|
|
|
fi
|
2024-09-26 18:07:06 +02:00
|
|
|
if ${SSHS-false} ; then
|
|
|
|
LABEL="${LABEL} ${On_White}${BBlack}tmpconfig${Color_Off}"
|
2020-07-09 22:10:31 +02:00
|
|
|
fi
|
2024-09-26 18:07:06 +02:00
|
|
|
echo -e "${LABEL}"
|
2020-07-09 22:10:31 +02:00
|
|
|
}
|
|
|
|
|
2020-01-14 10:11:36 +01:00
|
|
|
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
|
|
|
|
|
2024-09-26 18:07:06 +02:00
|
|
|
#LABEL=""
|
2020-01-14 10:11:36 +01:00
|
|
|
case "$TERM" in
|
|
|
|
xterm*|rxvt*|screen*)
|
|
|
|
case "$TERM" in
|
|
|
|
screen*) SCREEN="(SCREEN) ";;
|
|
|
|
*) SCREEN="";;
|
|
|
|
esac
|
|
|
|
RETVAL0="\342\234\223"
|
|
|
|
RETVALN0="\342\234\227 "
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
RETVAL0=":)"
|
|
|
|
RETVALN0=":("
|
|
|
|
;;
|
|
|
|
esac
|
2024-01-10 21:22:12 +01:00
|
|
|
|
|
|
|
# Base prompt
|
|
|
|
if [ "`id -u`" -eq 0 ]; then
|
|
|
|
PS1="\[$BRed\]${SCREEN}${SYSSUBVOL}\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}${SYSSUBVOL}\u@\h \[$BIBlue\]\[\e[m\]\[$IPurple\](\A)\[\e[m\]\$(set_label)\n\[$BIBlue\]${SYSSUBVOL}\w:\$(parse_git_branch) \[\e[m\]\[$BIBlue\]\$ "
|
|
|
|
fi
|
|
|
|
|
|
|
|
PS1="( \$? \$(if [[ \$? == 0 ]]; then echo \"\[$Green\]${RETVAL0}\"; else echo \"\[$Red\]${RETVALN0}\"; fi )\[\e[m\]) ${PS1}\[\e[m\]"
|
|
|
|
|
2020-01-14 10:11:36 +01:00
|
|
|
|
|
|
|
#trap 'echo -ne "\e[0m"' DEBUG
|