Files
dotfiles/scripts/git.sh
SALVI Jérémie 8e36eebe25 improve git prompt
2024-08-16 16:50:06 +02:00

34 lines
992 B
Bash
Executable File

#!/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
}