configs/sources/bash_prompt

25 lines
952 B
Bash
Raw Normal View History

2023-08-18 22:53:44 +02:00
parse_git_branch() {
if [ $(git status --porcelain 2> /dev/null | wc -l) != "0" ]; then
color=$'\001\e[31m\002'
elif [ $(git rev-list HEAD@{upstream}..HEAD 2> /dev/null | wc -l) != "0" ]; then
color=$'\001\e[33m\002'
else
color=$'\001\e[32m\002'
fi
reset=$'\001\e[0m\002'
git branch 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/(${color}\1${reset}) /"
}
green=$(tput setaf 2)
reset=$(tput sgr0)
export PROMPT_DIRTRIM=2 # Trimming path to 2 directories
export PROMPT_PATH="[\[$green\]\w\[$reset\]] "
alias fullpath='export PROMPT_DIRTRIM=0; export PROMPT_PATH="[\[$green\]\w\[$reset\]] "; re_export_ps1'
alias partialpath='export PROMPT_DIRTRIM=2; export PROMPT_PATH="[\[$green\]\w\[$reset\]] "; re_export_ps1'
alias lastpath='export PROMPT_PATH="[\[$green\]\W\[$reset\]] "; re_export_ps1'
alias nopath='export PROMPT_PATH=; re_export_ps1'
re_export_ps1() {
export PS1="$PROMPT_PATH\$(parse_git_branch)\$ "
}
re_export_ps1