Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- show_branch_status() {
- local ref branch
- ref=$(git symbolic-ref --quiet HEAD 2> /dev/null)
- case $? in
- 0) ;;
- 128) return ;;
- *) ref=$(git rev-parse --short HEAD 2> /dev/null) || return ;;
- esac
- branch=${ref#refs/heads/}
- printf ' (%s%s)' "$branch" "$(show_branch_changed)"
- }
- show_branch_changed() {
- local git_status symbols k
- git_status=$(LC_ALL=C command git status 2>&1)
- declare -A messages
- messages=(
- 'renamed:' '>'
- 'Your branch is ahead of' '*'
- 'new file:' '+'
- 'Untracked files' '?'
- 'deleted' 'x'
- 'modified:' '!'
- )
- for k in ${(@k)messages}
- do
- case $git_status in
- *${k}*) symbols="${messages[$k]}${symbols}" ;;
- esac
- done
- [[ -n $symbols ]] && printf ' %s' "$symbols"
- }
- precmd() {
- psvar[3]=$(show_branch_status)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement