/.bash_prompt
https://github.com/Ephemera/dotfiles · #! · 71 lines · 65 code · 6 blank · 0 comment · 0 complexity · 97222c587b2b1b7892c6ba4b0d574bc9 MD5 · raw file
- # Fork from https://github.com/gf3/dotfiles/blob/master/.bash_prompt
- # Sexy Bash Prompt, inspired by "Extravagant Zsh Prompt"
- # Screenshot: http://img.gf3.ca/d54942f474256ec26a49893681c49b5a.png
- # A big thanks to \amethyst on Freenode
- if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then export TERM=gnome-256color
- elif infocmp xterm-256color >/dev/null 2>&1; then export TERM=xterm-256color
- fi
- if tput setaf 1 &> /dev/null; then
- tput sgr0
- if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then
- MAGENTA=$(tput setaf 9)
- ORANGE=$(tput setaf 172)
- GREEN=$(tput setaf 190)
- PURPLE=$(tput setaf 141)
- WHITE=$(tput setaf 256)
- #WHITE=$(tput setaf 0)
- CYAN=$(tput setaf 6)
- else
- MAGENTA=$(tput setaf 5)
- ORANGE=$(tput setaf 4)
- GREEN=$(tput setaf 2)
- PURPLE=$(tput setaf 1)
- WHITE=$(tput setaf 7)
- CYAN=$(tput setaf 6)
- fi
- BOLD=$(tput bold)
- RESET=$(tput sgr0)
- else
- MAGENTA="\033[1;31m"
- ORANGE="\033[1;33m"
- GREEN="\033[1;32m"
- PURPLE="\033[1;35m"
- WHITE="\033[1;37m"
- CYAN="\033[1;36m"
- BOLD=""
- RESET="\033[m"
- fi
- parse_git_dirty () {
- [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit, working directory clean" ]] && echo "*"
- }
- parse_git_branch () {
- git branch -v --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \([^ ]*\)\ *\([^ ]*\) \(.*\)/\1:\2$(parse_git_dirty)/"
- }
- parse_git_just_branch () {
- git branch --contains 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/\1:$(parse_git_hash)$(parse_git_dirty)/"
- }
- parse_git_hash() {
- git rev-parse --short HEAD 2> /dev/null
- }
- parse_git_hash1 () {
- ((git log --pretty=format:'%h' -n 1)) && git log --pretty=format:'%h' -n 1
- }
- parse_hg_dirty () {
- [[ $(hg status 2> /dev/null | head -n1 | cut -c 1) == "M" ]] && echo "*"
- }
- parse_hg_branch () {
- hg branch 2> /dev/null | sed -e "s/\(.*\)/\1$(parse_hg_dirty)/"
- }
- jobscount() {
- local stopped=$(jobs -sp | wc -l)
- local running=$(jobs -rp | wc -l)
- ((running+stopped)) && echo "${running}r/${stopped}s"
- }
- #PS1="\[${PURPLE}\]\u \[$WHITE\]at \[$ORANGE\]\h \[$WHITE\]in \[$GREEN\]\w\[$WHITE\]\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" on \")\[$PURPLE\]\$(parse_git_branch)\[$WHITE\]\$([[ -n \$(hg branch 2> /dev/null) ]] && echo \" on \")\[$CYAN\]\$(parse_hg_branch)\[$WHITE\]\n\#> \[$RESET\]"
- PS1="\n\$([ \j -gt 0 ] && echo [\j]\ )\u@\h:\w\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" - \")\$(parse_git_just_branch)\n\#> "