From 99b6971f62cdb02d52c3c4f15f84c97dccaeb344 Mon Sep 17 00:00:00 2001 From: Xian Wang Date: Wed, 23 Mar 2022 10:12:52 -0400 Subject: zsh: update rcs and functions --- zsh/functions/update_current_git_vars | 43 +++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 zsh/functions/update_current_git_vars (limited to 'zsh/functions/update_current_git_vars') diff --git a/zsh/functions/update_current_git_vars b/zsh/functions/update_current_git_vars new file mode 100644 index 0000000..0e65c37 --- /dev/null +++ b/zsh/functions/update_current_git_vars @@ -0,0 +1,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 -- cgit v1.2.3