#!/bin/bash # bash-git-prompt version #VERSION# [[ "$TERM" = *color ]] && mitFarbe=true || mitFarbe=false [ -z "$PS1Start" ] && [ -z "$PS1Ende" ] && if echo "$PS1" | grep -q "\S" then PS1Ende="$(echo "$PS1" | sed 's|^.*[^\]\(\\\?[$#>]\s*\([]\\[0-9m]\)*\s*\)$|\1|')" PS1Start="$(echo "$PS1" | sed 's|\\\?[$#>]\s*\([]\\[0-9m]\)*\s*$||')" else PS1Ende="" PS1Start="$PS1" fi PS1="$PS1Start" if status=$(git status --porcelain 2> /dev/null) then PS1="$PS1 " branch="$((git symbolic-ref HEAD 2> /dev/null || git describe --always) | sed "s|^.*/||")" gitDir="$(git rev-parse --show-toplevel)/$(git rev-parse --git-dir)" if [ -e ${gitDir}/rebase-merge ] || [ -e ${gitDir}/rebase-apply ] then branch="($branch)" fi echo "$status" | grep -q "^.\S" && wtClean=false || wtClean=true echo "$status" | grep -q "^\S" && idxClean=false || idxClean=true [ $(git show-ref "${branch}" --head -s | \ uniq | \ wc -l ) -eq 1 ] && \ remClean=true || \ remClean=false if $mitFarbe then if ! $wtClean then PS1="$PS1\[\033[01;31m\]" elif ! $idxClean then PS1="$PS1\[\033[01;33m\]" elif ! $remClean then PS1="$PS1\[\033[01;34m\]" else PS1="$PS1\[\033[01;32m\]" fi fi PS1="$PS1$branch" if $mitFarbe then PS1="$PS1\[\033[00m\]" else if ! $wtClean then PS1="$PS1!" elif ! $idxClean then PS1="$PS1+" elif ! $remClean then PS1="$PS1^" fi fi fi PS1="$PS1$PS1Ende"