diff --git a/scripts/git.sh b/scripts/git.sh new file mode 100755 index 0000000..db3ba31 --- /dev/null +++ b/scripts/git.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +_git () { + if git branch --show-current > /dev/null 2>&1 + then + _BRANCH="$(git branch --show-current)" + _MODIFIED="$(grep -o "M" <<< "$(git status --short)" | grep -c .)" + _UNTRACKED="$(grep -o "??" <<< "$(git status --short)" | grep -c .)" + _ORIGIN="$(git remote show)" + _AHEAD=$(git rev-list --left-right --count "$_BRANCH"..."$_ORIGIN"/"$_BRANCH" | cut -f 1) + _BEHIND=$(git rev-list --left-right --count "$_BRANCH"..."$_ORIGIN"/"$_BRANCH" | cut -f 2) + printf "  %s " "$(git branch --show-current)" + if (( _MODIFIED == 0 )) && (( _UNTRACKED == 0 )) && (( _AHEAD == 0 )) && (( _BEHIND == 0 )) + then + printf "" + exit 0 + fi + if (( _MODIFIED >= 0 )) + then + printf "✗%s " "$_MODIFIED" + fi + if (( _UNTRACKED >= 0 )) + then + printf "★%s " "$_UNTRACKED" + fi + if (( _AHEAD >= 0 )); then + printf "%s " "$_AHEAD" + fi + if (( _BEHIND >= 0 )); then + printf "%s" "$_BEHIND" + fi + fi +}