From 8e36eebe255cf56092a73b2a913d9eac7d7dcf19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?SALVI=20J=C3=A9r=C3=A9mie?= Date: Fri, 16 Aug 2024 16:50:06 +0200 Subject: [PATCH] improve git prompt --- scripts/git.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 scripts/git.sh 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 +}