summaryrefslogtreecommitdiff
path: root/01_Functions.zsh
diff options
context:
space:
mode:
Diffstat (limited to '01_Functions.zsh')
-rw-r--r--01_Functions.zsh23
1 files changed, 17 insertions, 6 deletions
diff --git a/01_Functions.zsh b/01_Functions.zsh
index 3d1221d..af6423c 100644
--- a/01_Functions.zsh
+++ b/01_Functions.zsh
@@ -83,14 +83,25 @@ get_git_branch ()
# a call to `get_git_branch`
get_git_status ()
{
- local my_git_status
+ local my_git_status cached not_up_to_date managment_folder
- if [ "$(git-rev-parse --git-dir)" == "." ]
- then
- my_git_status="$git_colors[managment_folder]"
- elif [ "$(git-diff --cached 2>&- | grep '^diff ')" != "" ] ; then
+ if [ "$(git-rev-parse --git-dir)" == "." ] ; then
+ echo "$git_colors[managment_folder]"
+ return
+ fi
+
+ if [ "$(git-diff --cached 2>&- | grep '^diff ')" != "" ] ; then
+ cached="yes"
+ fi
+ if [ "$(git-ls-files -m 2>&-)" != "" ] ; then
+ not_up_to_date="yes"
+ fi
+
+ if [ "$cached" != "" -a "$not_up_to_date" != "" ] ; then
+ my_git_status="$git_colors[cached_and_not_up_to_date]"
+ elif [ "$cached" != "" ] ; then
my_git_status="$git_colors[cached]"
- elif [ "$(git-ls-files -m 2>&-)" != "" ] ; then
+ elif [ "$not_up_to_date" != "" ] ; then
my_git_status="$git_colors[not_up_to_date]"
else
my_git_status="$git_colors[up_to_date]"