mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-08-13 08:37:20 +02:00
feat(git-prompt): display stash count in prompt
This commit is contained in:
committed by
Marc Cornellà
parent
63477411eb
commit
47c04d921e
@ -23,6 +23,18 @@ def get_tagname_or_hash():
|
||||
return hash_
|
||||
return None
|
||||
|
||||
# Re-use method from https://github.com/magicmonty/bash-git-prompt to get stashs count
|
||||
def get_stash():
|
||||
cmd = Popen(['git', 'rev-parse', '--git-dir'], stdout=PIPE, stderr=PIPE)
|
||||
so, se = cmd.communicate()
|
||||
stash_file = '%s%s' % (so.decode('utf-8').rstrip(), '/logs/refs/stash')
|
||||
|
||||
try:
|
||||
with open(stash_file) as f:
|
||||
return sum(1 for _ in f)
|
||||
except IOError:
|
||||
return 0
|
||||
|
||||
|
||||
# `git status --porcelain --branch` can collect all information
|
||||
# branch, remote_branch, untracked, staged, changed, conflicts, ahead, behind
|
||||
@ -68,6 +80,12 @@ for st in status:
|
||||
elif st[0] != ' ':
|
||||
staged.append(st)
|
||||
|
||||
stashed = get_stash()
|
||||
if not changed and not staged and not conflicts and not untracked and not stashed:
|
||||
clean = 1
|
||||
else:
|
||||
clean = 0
|
||||
|
||||
out = ' '.join([
|
||||
branch,
|
||||
str(ahead),
|
||||
@ -76,5 +94,7 @@ out = ' '.join([
|
||||
str(len(conflicts)),
|
||||
str(len(changed)),
|
||||
str(len(untracked)),
|
||||
str(stashed),
|
||||
str(clean)
|
||||
])
|
||||
print(out, end='')
|
||||
|
Reference in New Issue
Block a user