git module; adds rprompt string and auto-inits git-lfs if needed
This commit is contained in:
parent
798ced71aa
commit
03c525d890
34
modules/git.zsh
Normal file
34
modules/git.zsh
Normal file
@ -0,0 +1,34 @@
|
||||
(( $+commands[git] )) || return
|
||||
|
||||
if (( $+commands[git-lfs] )); then
|
||||
# ensures git-lfs is functional if installed
|
||||
git config --get filter.lfs.process &> /dev/null || git lfs install
|
||||
fi
|
||||
|
||||
function git_prompt() {
|
||||
git rev-parse --is-inside-work-tree &> /dev/null
|
||||
__git_prompt__is_git_dir=$?
|
||||
|
||||
if [[ $__git_prompt__is_git_dir -eq 0 ]]; then
|
||||
commithash=$(git log --pretty=format:"%h" -n 1)
|
||||
fullbranchname=$(git name-rev --name-only ${commithash})
|
||||
branchtype=$(echo ${fullbranchname} | cut -d"/" -f1)
|
||||
|
||||
if [[ "${branchtype}" == "refs" ]]; then
|
||||
branchname=$(echo ${fullbranchname} | cut -d"/" -f3)
|
||||
elif [[ "${branchtype}" == "remotes" ]]; then
|
||||
branchname=$(echo ${commithash} | cut -d"/" -f2-)
|
||||
elif [[ "${branchtype}" == "${fullbranchname}" ]]; then
|
||||
# git did it for us
|
||||
branchname=${fullbranchname}
|
||||
else
|
||||
branchname=${fullbranchname}
|
||||
# output a warning to stderr, convenience for maintenance
|
||||
echo "warning: unrecognized branch type ${branchtype}" >&2
|
||||
fi
|
||||
|
||||
print "%{$fg[yellow]%}${branchname}"
|
||||
fi
|
||||
}
|
||||
|
||||
rprompt_functions+=git_prompt
|
Loading…
Reference in New Issue
Block a user