#!/usr/bin/env bash red="\e[31m" grn="\e[32m" ylw="\e[33m" cyn="\e[36m" blu="\e[34m" prp="\e[35m" bprp="\e[35;1m" gry="\e[94m" rst="\e[0m" git_branch() { local git_status="$(git status 2> /dev/null)" local on_branch="On branch ([^${IFS}]*)" local on_commit="HEAD detached at ([^${IFS}]*)" if [[ $git_status =~ $on_branch ]]; then local branch=${BASH_REMATCH[1]} echo -ne " ${grn} $branch ${rst}" elif [[ $git_status =~ $on_commit ]]; then local commit=${BASH_REMATCH[1]} echo -ne " ${ylw} $commit ${rst}" fi } prompt_pwd() { path="$(echo $PWD)" echo -ne "\001${gry}\002$path\001${rst}\002" } rootornot() { if [[ "$(id -u)" -eq 0 ]]; then echo -ne "\001${red}\002#\001${rst}\002" else echo -ne "›" fi } PS1='\n$(prompt_pwd)$(git_branch)\n$(rootornot) ' PS2="> "