aboutsummaryrefslogtreecommitdiff
path: root/.oh-my-zsh/plugins/git-prompt
diff options
context:
space:
mode:
Diffstat (limited to '.oh-my-zsh/plugins/git-prompt')
-rw-r--r--.oh-my-zsh/plugins/git-prompt/git-prompt.plugin.zsh92
-rw-r--r--.oh-my-zsh/plugins/git-prompt/gitstatus.py84
2 files changed, 0 insertions, 176 deletions
diff --git a/.oh-my-zsh/plugins/git-prompt/git-prompt.plugin.zsh b/.oh-my-zsh/plugins/git-prompt/git-prompt.plugin.zsh
deleted file mode 100644
index 2776f29..0000000
--- a/.oh-my-zsh/plugins/git-prompt/git-prompt.plugin.zsh
+++ /dev/null
@@ -1,92 +0,0 @@
-# ZSH Git Prompt Plugin from:
-# https://github.com/olivierverdier/zsh-git-prompt
-
-__GIT_PROMPT_DIR="${0:A:h}"
-
-## Hook function definitions
-function chpwd_update_git_vars() {
- update_current_git_vars
-}
-
-function preexec_update_git_vars() {
- case "$2" in
- git*|hub*|gh*|stg*)
- __EXECUTED_GIT_COMMAND=1
- ;;
- esac
-}
-
-function precmd_update_git_vars() {
- if [ -n "$__EXECUTED_GIT_COMMAND" ] || [ ! -n "$ZSH_THEME_GIT_PROMPT_CACHE" ]; then
- update_current_git_vars
- unset __EXECUTED_GIT_COMMAND
- fi
-}
-
-chpwd_functions+=(chpwd_update_git_vars)
-precmd_functions+=(precmd_update_git_vars)
-preexec_functions+=(preexec_update_git_vars)
-
-
-## Function definitions
-function update_current_git_vars() {
- unset __CURRENT_GIT_STATUS
-
- local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py"
- _GIT_STATUS=$(python ${gitstatus} 2>/dev/null)
- __CURRENT_GIT_STATUS=("${(@s: :)_GIT_STATUS}")
- GIT_BRANCH=$__CURRENT_GIT_STATUS[1]
- GIT_AHEAD=$__CURRENT_GIT_STATUS[2]
- GIT_BEHIND=$__CURRENT_GIT_STATUS[3]
- GIT_STAGED=$__CURRENT_GIT_STATUS[4]
- GIT_CONFLICTS=$__CURRENT_GIT_STATUS[5]
- GIT_CHANGED=$__CURRENT_GIT_STATUS[6]
- GIT_UNTRACKED=$__CURRENT_GIT_STATUS[7]
-}
-
-git_super_status() {
- precmd_update_git_vars
- if [ -n "$__CURRENT_GIT_STATUS" ]; then
- STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH%{${reset_color}%}"
- if [ "$GIT_BEHIND" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_BEHIND$GIT_BEHIND%{${reset_color}%}"
- fi
- if [ "$GIT_AHEAD" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD$GIT_AHEAD%{${reset_color}%}"
- fi
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_SEPARATOR"
- if [ "$GIT_STAGED" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED$GIT_STAGED%{${reset_color}%}"
- fi
- if [ "$GIT_CONFLICTS" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CONFLICTS$GIT_CONFLICTS%{${reset_color}%}"
- fi
- if [ "$GIT_CHANGED" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CHANGED$GIT_CHANGED%{${reset_color}%}"
- fi
- if [ "$GIT_UNTRACKED" -ne "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED%{${reset_color}%}"
- fi
- if [ "$GIT_CHANGED" -eq "0" ] && [ "$GIT_CONFLICTS" -eq "0" ] && [ "$GIT_STAGED" -eq "0" ] && [ "$GIT_UNTRACKED" -eq "0" ]; then
- STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
- fi
- STATUS="$STATUS%{${reset_color}%}$ZSH_THEME_GIT_PROMPT_SUFFIX"
- echo "$STATUS"
- fi
-}
-
-# Default values for the appearance of the prompt.
-ZSH_THEME_GIT_PROMPT_PREFIX="("
-ZSH_THEME_GIT_PROMPT_SUFFIX=")"
-ZSH_THEME_GIT_PROMPT_SEPARATOR="|"
-ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}"
-ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}%{●%G%}"
-ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}%{✖%G%}"
-ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}%{✚%G%}"
-ZSH_THEME_GIT_PROMPT_BEHIND="%{↓%G%}"
-ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%G%}"
-ZSH_THEME_GIT_PROMPT_UNTRACKED="%{…%G%}"
-ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}%{✔%G%}"
-
-# Set the prompt.
-RPROMPT='$(git_super_status)'
diff --git a/.oh-my-zsh/plugins/git-prompt/gitstatus.py b/.oh-my-zsh/plugins/git-prompt/gitstatus.py
deleted file mode 100644
index a4d07cd..0000000
--- a/.oh-my-zsh/plugins/git-prompt/gitstatus.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-from __future__ import print_function
-
-import sys
-import re
-import shlex
-from subprocess import Popen, PIPE, check_output
-
-
-def get_tagname_or_hash():
- """return tagname if exists else hash"""
- cmd = 'git log -1 --format="%h%d"'
- output = check_output(shlex.split(cmd)).decode('utf-8').strip()
- hash_, tagname = None, None
- # get hash
- m = re.search('\(.*\)$', output)
- if m:
- hash_ = output[:m.start()-1]
- # get tagname
- m = re.search('tag: .*[,\)]', output)
- if m:
- tagname = 'tags/' + output[m.start()+len('tag: '): m.end()-1]
-
- if tagname:
- return tagname.replace(' ', '')
- elif hash_:
- return hash_
- return None
-
-
-# `git status --porcelain --branch` can collect all information
-# branch, remote_branch, untracked, staged, changed, conflicts, ahead, behind
-po = Popen(['git', 'status', '--porcelain', '--branch'], stdout=PIPE, stderr=PIPE)
-stdout, sterr = po.communicate()
-if po.returncode != 0:
- sys.exit(0) # Not a git repository
-
-# collect git status information
-untracked, staged, changed, conflicts = [], [], [], []
-ahead, behind = 0, 0
-status = [(line[0], line[1], line[2:]) for line in stdout.decode('utf-8').splitlines()]
-for st in status:
- if st[0] == '#' and st[1] == '#':
- if re.search('Initial commit on', st[2]) or re.search('No commits yet on', st[2]):
- branch = st[2].split(' ')[-1]
- elif re.search('no branch', st[2]): # detached status
- branch = get_tagname_or_hash()
- elif len(st[2].strip().split('...')) == 1:
- branch = st[2].strip()
- else:
- # current and remote branch info
- branch, rest = st[2].strip().split('...')
- if len(rest.split(' ')) == 1:
- # remote_branch = rest.split(' ')[0]
- pass
- else:
- # ahead or behind
- divergence = ' '.join(rest.split(' ')[1:])
- divergence = divergence.lstrip('[').rstrip(']')
- for div in divergence.split(', '):
- if 'ahead' in div:
- ahead = int(div[len('ahead '):].strip())
- elif 'behind' in div:
- behind = int(div[len('behind '):].strip())
- elif st[0] == '?' and st[1] == '?':
- untracked.append(st)
- else:
- if st[1] == 'M':
- changed.append(st)
- if st[0] == 'U':
- conflicts.append(st)
- elif st[0] != ' ':
- staged.append(st)
-
-out = ' '.join([
- branch,
- str(ahead),
- str(behind),
- str(len(staged)),
- str(len(conflicts)),
- str(len(changed)),
- str(len(untracked)),
-])
-print(out, end='')