summaryrefslogtreecommitdiff
path: root/plugins/git-prompt/gitstatus.py
diff options
context:
space:
mode:
authorChris Jones <chris@brack3t.com>2014-02-21 22:47:56 -0800
committerChris Jones <chris@brack3t.com>2014-02-21 22:47:56 -0800
commit7a546362d35d6c74f9c301aa477594fdf2cc1bfc (patch)
tree5662ad377e0a276273061f38d1766417fa1fc769 /plugins/git-prompt/gitstatus.py
parent598a9c6f990756386517d66b6bcf77e53791e905 (diff)
downloadzsh-7a546362d35d6c74f9c301aa477594fdf2cc1bfc.tar.gz
zsh-7a546362d35d6c74f9c301aa477594fdf2cc1bfc.tar.bz2
zsh-7a546362d35d6c74f9c301aa477594fdf2cc1bfc.zip
Much needed PEP8 love. Use spaces, not tabs.
Diffstat (limited to 'plugins/git-prompt/gitstatus.py')
-rw-r--r--plugins/git-prompt/gitstatus.py88
1 files changed, 51 insertions, 37 deletions
diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py
index ee6fab9bd..6d64e8277 100644
--- a/plugins/git-prompt/gitstatus.py
+++ b/plugins/git-prompt/gitstatus.py
@@ -1,20 +1,30 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
+from subprocess import Popen, PIPE
+import re
# change those symbols to whatever you prefer
-symbols = {'ahead of': '↑', 'behind': '↓', 'staged':'♦', 'changed':'‣', 'untracked':'…', 'clean':'⚡', 'unmerged':'≠', 'sha1':':'}
-
-from subprocess import Popen, PIPE
+symbols = {
+ 'ahead of': '↑',
+ 'behind': '↓',
+ 'staged': '♦',
+ 'changed': '‣',
+ 'untracked': '…',
+ 'clean': '⚡',
+ 'unmerged': '≠',
+ 'sha1': ':'
+}
-output,error = Popen(['git','status'], stdout=PIPE, stderr=PIPE).communicate()
+output, error = Popen(
+ ['git', 'status'], stdout=PIPE, stderr=PIPE).communicate()
if error:
- import sys
- sys.exit(0)
+ import sys
+ sys.exit(0)
lines = output.splitlines()
-import re
-behead_re = re.compile(r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit")
+behead_re = re.compile(
+ r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit")
diverge_re = re.compile(r"^# and have (\d+) and (\d+) different")
status = ''
@@ -23,46 +33,50 @@ changed = re.compile(r'^# Changed but not updated:$', re.MULTILINE)
untracked = re.compile(r'^# Untracked files:$', re.MULTILINE)
unmerged = re.compile(r'^# Unmerged paths:$', re.MULTILINE)
+
def execute(*command):
- out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate()
- if not err:
- nb = len(out.splitlines())
- else:
- nb = '?'
- return nb
+ out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate()
+ if not err:
+ nb = len(out.splitlines())
+ else:
+ nb = '?'
+ return nb
if staged.search(output):
- nb = execute(['git','diff','--staged','--name-only','--diff-filter=ACDMRT'])
- status += '%s%s' % (symbols['staged'], nb)
+ nb = execute(
+ ['git', 'diff', '--staged', '--name-only', '--diff-filter=ACDMRT'])
+ status += '%s%s' % (symbols['staged'], nb)
if unmerged.search(output):
- nb = execute(['git','diff', '--staged','--name-only', '--diff-filter=U'])
- status += '%s%s' % (symbols['unmerged'], nb)
+ nb = execute(['git', 'diff', '--staged', '--name-only', '--diff-filter=U'])
+ status += '%s%s' % (symbols['unmerged'], nb)
if changed.search(output):
- nb = execute(['git','diff','--name-only', '--diff-filter=ACDMRT'])
- status += '%s%s' % (symbols['changed'], nb)
+ nb = execute(['git', 'diff', '--name-only', '--diff-filter=ACDMRT'])
+ status += '%s%s' % (symbols['changed'], nb)
if untracked.search(output):
-## nb = len(Popen(['git','ls-files','--others','--exclude-standard'],stdout=PIPE).communicate()[0].splitlines())
-## status += "%s" % (symbols['untracked']*(nb//3 + 1), )
- status += symbols['untracked']
+ status += symbols['untracked']
if status == '':
- status = symbols['clean']
+ status = symbols['clean']
remote = ''
bline = lines[0]
if bline.find('Not currently on any branch') != -1:
- branch = symbols['sha1']+ Popen(['git','rev-parse','--short','HEAD'], stdout=PIPE).communicate()[0][:-1]
+ branch = symbols['sha1'] + Popen([
+ 'git',
+ 'rev-parse',
+ '--short',
+ 'HEAD'], stdout=PIPE).communicate()[0][:-1]
else:
- branch = bline.split(' ')[3]
- bstatusline = lines[1]
- match = behead_re.match(bstatusline)
- if match:
- remote = symbols[match.groups()[0]]
- remote += match.groups()[2]
- elif lines[2:]:
- div_match = diverge_re.match(lines[2])
- if div_match:
- remote = "{behind}{1}{ahead of}{0}".format(*div_match.groups(), **symbols)
-
-print '\n'.join([branch,remote,status])
+ branch = bline.split(' ')[3]
+ bstatusline = lines[1]
+ match = behead_re.match(bstatusline)
+ if match:
+ remote = symbols[match.groups()[0]]
+ remote += match.groups()[2]
+ elif lines[2:]:
+ div_match = diverge_re.match(lines[2])
+ if div_match:
+ remote = "{behind}{1}{ahead of}{0}".format(
+ *div_match.groups(), **symbols)
+print('\n'.join([branch, remote, status]))