summaryrefslogtreecommitdiff
path: root/zsh/functions/update_current_git_vars
blob: 0e65c37cdb9e70d3ffc5cdb66c4df54c57bbd964 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# based on http://sebastiancelis.com/2009/nov/16/zsh-prompt-git-users/
unset __CURRENT_GIT_BRANCH
unset __CURRENT_GIT_BRANCH_STATUS
unset __CURRENT_GIT_BRANCH_IS_DIRTY

local git_dir head

git_dir="$(git rev-parse --git-dir 2>/dev/null)"

if [[ -n "$git_dir" ]] ; then
  head=$(cat "$git_dir/HEAD")
  if [[ $head =~ '^ref: ' ]]; then
    __CURRENT_GIT_BRANCH=$(expr "$head" : 'ref: refs/heads/\(.*\)')
  else
    __CURRENT_GIT_BRANCH="no-branch"
  fi
fi

#local st="$(git status 2>/dev/null)"
#if [[ -n "$st" ]]; then
#  local -a arr
#  arr=(${(f)st})
#
#  if [[ $arr[1] =~ 'Not currently on any branch.' ]]; then
#  __CURRENT_GIT_BRANCH='no-branch'
#  else
#  __CURRENT_GIT_BRANCH="${arr[1][(w)4]}";
#  fi
#
#  if [[ $arr[2] =~ 'Your branch is' ]]; then
#    if [[ $arr[2] =~ 'ahead' ]]; then
#    __CURRENT_GIT_BRANCH_STATUS='ahead'
#    elif [[ $arr[2] =~ 'diverged' ]]; then
#    __CURRENT_GIT_BRANCH_STATUS='diverged'
#    else
#    __CURRENT_GIT_BRANCH_STATUS='behind'
#    fi
#  fi
#
#  if [[ ! $st =~ 'nothing to commit' ]]; then
#    __CURRENT_GIT_BRANCH_IS_DIRTY='1'
#  fi
#fi