diff options
| author | Ryan Kavanagh <rak@rak.ac> | 2021-12-13 15:25:25 -0500 | 
|---|---|---|
| committer | Ryan Kavanagh <rak@rak.ac> | 2021-12-13 15:37:27 -0500 | 
| commit | 7608f4a0d8fe3d239b813d7282a4c1ec07bb1327 (patch) | |
| tree | ea11cd7f59493351d1ca789654c2e9b82fad87fa /.zsh/func/zgitinit | |
| parent | Added zeta ssh certs (diff) | |
Switch to powerline10k prompt after god knows how many years of wunjo
Diffstat (limited to '.zsh/func/zgitinit')
| -rw-r--r-- | .zsh/func/zgitinit | 248 | 
1 files changed, 0 insertions, 248 deletions
| diff --git a/.zsh/func/zgitinit b/.zsh/func/zgitinit deleted file mode 100644 index ebc8bff..0000000 --- a/.zsh/func/zgitinit +++ /dev/null @@ -1,248 +0,0 @@ -## -## Load with `autoload -U zgitinit; zgitinit' -## - -typeset -gA zgit_info -zgit_info=() - -zgit_chpwd_hook() { -	zgit_info_update -} - -zgit_preexec_hook() { -	if [[ $2 == git\ * ]] || [[ $2 == *\ git\ * ]]; then -		zgit_precmd_do_update=1 -	fi -} - -zgit_precmd_hook() { -	if [ $zgit_precmd_do_update ]; then -		unset zgit_precmd_do_update -		zgit_info_update -	fi -} - -zgit_info_update() { -	zgit_info=() - -	local gitdir=$(git rev-parse --git-dir 2>/dev/null) -	if [ $? -ne 0 ] || [ -z "$gitdir" ]; then -		return -	fi - -	zgit_info[dir]=$gitdir -	zgit_info[bare]=$(git rev-parse --is-bare-repository) -	zgit_info[inwork]=$(git rev-parse --is-inside-work-tree) -} - -zgit_isgit() { -	if [ -z "$zgit_info[dir]" ]; then -		return 1 -	else -		return 0 -	fi -} - -zgit_inworktree() { -	zgit_isgit || return -	if [ "$zgit_info[inwork]" = "true" ]; then -		return 0 -	else -		return 1 -	fi -} - -zgit_isbare() { -	zgit_isgit || return -	if [ "$zgit_info[bare]" = "true" ]; then -		return 0 -	else -		return 1 -	fi -} - -zgit_head() { -	zgit_isgit || return 1 - -	if [ -z "$zgit_info[head]" ]; then -		local name='' -		name=$(git symbolic-ref -q HEAD) -		if [ $? -eq 0 ]; then -			if [[ $name == refs/(heads|tags)/* ]]; then -				name=${name#refs/(heads|tags)/} -			fi -		else -			name=$(git name-rev --name-only --no-undefined --always HEAD) -			if [ $? -ne 0 ]; then -				return 1 -			elif [[ $name == remotes/* ]]; then -				name=${name#remotes/} -			fi -		fi -		zgit_info[head]=$name -	fi - -	echo $zgit_info[head] -} - -zgit_branch() { -	zgit_isgit || return 1 -	zgit_isbare && return 1 - -	if [ -z "$zgit_info[branch]" ]; then -		local branch=$(git symbolic-ref HEAD 2>/dev/null) -		if [ $? -eq 0 ]; then -			branch=${branch##*/} -		else -			branch=$(git name-rev --name-only --always HEAD) -		fi -		zgit_info[branch]=$branch -	fi - -	echo $zgit_info[branch] -	return 0 -} - -zgit_tracking_remote() { -	zgit_isgit || return 1 -	zgit_isbare && return 1 - -	local branch -	if [ -n "$1" ]; then -		branch=$1 -	elif [ -z "$zgit_info[branch]" ]; then -		branch=$(zgit_branch) -		[ $? -ne 0 ] && return 1 -	else -		branch=$zgit_info[branch] -	fi - -	local k="tracking_$branch" -	local remote -	if [ -z "$zgit_info[$k]" ]; then -		remote=$(git config branch.$branch.remote) -		zgit_info[$k]=$remote -	fi - -	echo $zgit_info[$k] -	return 0 -} - -zgit_tracking_merge() { -	zgit_isgit || return 1 -	zgit_isbare && return 1 - -	local branch -	if [ -z "$zgit_info[branch]" ]; then -		branch=$(zgit_branch) -		[ $? -ne 0 ] && return 1 -	else -		branch=$zgit_info[branch] -	fi - -	local remote=$(zgit_tracking_remote $branch) -	[ $? -ne 0 ] && return 1 -	if [ -n "$remote" ]; then # tracking branch -		local merge=$(git config branch.$branch.merge) -		if [ $remote != "." ]; then -			merge=$remote/$(basename $merge) -		fi -		echo $merge -		return 0 -	else -		return 1 -	fi -} - -zgit_isindexclean() { -	zgit_isgit || return 1 -	if git diff --quiet --cached 2>/dev/null; then -		return 0 -	else -		return 1 -	fi -} - -zgit_isworktreeclean() { -	zgit_isgit || return 1 -	if git diff --quiet 2>/dev/null; then -		return 0 -	else -		return 1 -	fi -} - -zgit_hasuntracked() { -	zgit_isgit || return 1 -	local -a flist -	flist=($(git ls-files --others --exclude-standard)) -	if [ $#flist -gt 0 ]; then -		return 0 -	else -		return 1 -	fi -} - -zgit_hasunmerged() { -	zgit_isgit || return 1 -	local -a flist -	flist=($(git ls-files -u)) -	if [ $#flist -gt 0 ]; then -		return 0 -	else -		return 1 -	fi -} - -zgit_svnhead() { -	zgit_isgit || return 1 - -	local commit=$1 -	if [ -z "$commit" ]; then -		commit='HEAD' -	fi - -	git show --raw $commit | \ -		grep git-svn-id | \ -			sed -re 's/^\s*git-svn-id: .*@([0-9]+).*$/\1/' -} - -zgit_rebaseinfo() { -	zgit_isgit || return 1 -	if [ -d $zgit_info[dir]/rebase-merge ]; then -		dotest=$zgit_info[dir]/rebase-merge -	elif [ -d $zgit_info[dir]/.dotest-merge ]; then -		dotest=$zgit_info[dir]/.dotest-merge -	elif [ -d .dotest ]; then -		dotest=.dotest -	else -		return 1 -	fi - -	zgit_info[dotest]=$dotest - -	zgit_info[rb_onto]=$(cat "$dotest/onto") -	zgit_info[rb_upstream]=$(cat "$dotest/upstream") -	if [ -f "$dotest/orig-head" ]; then -		zgit_info[rb_head]=$(cat "$dotest/orig-head") -	elif [ -f "$dotest/head" ]; then -		zgit_info[rb_head]=$(cat "$dotest/head") -	fi -	zgit_info[rb_head_name]=$(cat "$dotest/head-name") - -	return 0 -} - -zgitinit() { -	typeset -ga chpwd_functions -	typeset -ga preexec_functions -	typeset -ga precmd_functions -	chpwd_functions+='zgit_chpwd_hook' -	preexec_functions+='zgit_preexec_hook' -	precmd_functions+='zgit_precmd_hook' -} - -zgitinit -zgit_info_update - -# vim:set ft=zsh: | 
