- NPM Package version
- Git status
- Git branch
- Cool lambda symbol
Paste at the end of your .bashrc
Feel free to fork or request changes!
| COLOR_RED="\033[0;31m" | |
| COLOR_YELLOW="\033[0;33m" | |
| COLOR_GREEN="\033[0;32m" | |
| COLOR_OCHRE="\033[38;5;95m" | |
| COLOR_BLUE="\033[0;34m" | |
| COLOR_WHITE="\033[0;37m" | |
| COLOR_RESET="\033[0m" | |
| function git_color() { | |
| local git_status="$(git status 2>/dev/null)" | |
| if [[ ! $git_status =~ "working directory clean" ]]; then | |
| echo -e $COLOR_GREEN | |
| elif [[ $git_status =~ "Your branch is ahead of" ]]; then | |
| echo -e $COLOR_YELLOW | |
| elif [[ $git_status =~ "nothing to commit" ]]; then | |
| echo -e $COLOR_GREEN | |
| else | |
| echo -e $COLOR_OCHRE | |
| fi | |
| } | |
| function 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 "($branch)" | |
| elif [[ $git_status =~ $on_commit ]]; then | |
| local commit=${BASH_REMATCH[1]} | |
| echo "($commit)" | |
| fi | |
| } | |
| function npm_version() { | |
| if [ -f "package.json" ]; then | |
| # Version key/value should be on his own line | |
| PACKAGE_VERSION=$(cat package.json | | |
| grep version | | |
| head -1 | | |
| awk -F: '{ print $2 }' | | |
| sed 's/[",]//g' | | |
| tr -d '[[:space:]]') | |
| if [[ -n "$PACKAGE_VERSION" ]]; then | |
| # String exists | |
| echo "@$PACKAGE_VERSION" | |
| fi | |
| fi | |
| } | |
| PS1="${debian_chroot:+($debian_chroot)}" | |
| PS1+="\[$COLOR_GREEN\]\u@\h\[$COLOR_WHITE\]:\[$COLOR_BLUE\]\w" # basename of pwd | |
| PS1+="\[$COLOR_YELLOW\]\$(npm_version)" | |
| PS1+="\[\$(git_color)\]" # colors git status | |
| PS1+=" \$(git_branch)" # prints current branch | |
| PS1+="\n\[$COLOR_GREEN\]λ\[$COLOR_RESET\] " | |
| # If this is an xterm set the title to user@host:dir (not really sure what this does) | |
| case "$TERM" in | |
| xterm* | rxvt*) | |
| PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" | |
| ;; | |
| *) ;; | |
| esac | |
| export PS1 |