28b737416fe1eadd1a0e0bad460941651ac20e49

Author
Yohann Bianchi <sbooob@gmail.com>
Committer
Yohann Bianchi <sbooob@gmail.com>
Date

Message

ADDED: Mercurial prompt info support even if hg prompt extension is unavailable

Diff

 1diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme
 2index 7ce5a77f8082636eaeb698459990f233d725a00c..e2074b713b8f267dafa217e335512e995a223ba6 100644
 3--- a/themes/agnoster.zsh-theme
 4+++ b/themes/agnoster.zsh-theme
 5@@ -87,18 +87,35 @@ prompt_hg() {
 6 	local rev status
 7 	if $(hg id >/dev/null 2>&1); then
 8 		if $(hg prompt >/dev/null 2>&1); then
 9-			rev=$(hg prompt {status})
10-			if [[ $rev = "?" ]]; then
11+			st=$(hg prompt {status})
12+			if [[ $st = "?" ]]; then
13+				# if files are not added
14 				prompt_segment red white
15-				rev='±'
16-			elif [[ -n $rev ]]; then
17+				st='±'
18+			elif [[ -n $st ]]; then
19+				# if any modification
20 				prompt_segment yellow black
21-				rev='±'
22+				st='±'
23 			else
24+				# if working copy is clean
25 				prompt_segment green black
26 			fi
27+			echo -n $(hg prompt "⭠ {rev}@{branch}") $st
28+		else
29+			st=""
30+			rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
31+			branch=$(hg id -b 2>/dev/null)
32+			if `hg st | grep -Eq "^\?"`; then
33+				prompt_segment red black
34+				st='±'
35+			elif `hg st | grep -Eq "^(M|A)"`; then
36+				prompt_segment yellow black
37+				st='±'
38+			else
39+				prompt_segment green black
40+			fi
41+			echo -n "⭠ $rev@$branch" $st
42 		fi
43-		echo -n $(hg prompt "⭠ {rev}@{branch}") $rev
44 	fi
45 }
46