|
@@ -83,6 +83,41 @@ prompt_git() {
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+prompt_hg() {
|
|
|
+ local rev status
|
|
|
+ if $(hg id >/dev/null 2>&1); then
|
|
|
+ if $(hg prompt >/dev/null 2>&1); then
|
|
|
+ if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
|
|
|
+ # if files are not added
|
|
|
+ prompt_segment red white
|
|
|
+ st='±'
|
|
|
+ elif [[ -n $(hg prompt "{status|modified}") ]]; then
|
|
|
+ # if any modification
|
|
|
+ prompt_segment yellow black
|
|
|
+ st='±'
|
|
|
+ else
|
|
|
+ # if working copy is clean
|
|
|
+ prompt_segment green black
|
|
|
+ fi
|
|
|
+ echo -n $(hg prompt "⭠ {rev}@{branch}") $st
|
|
|
+ else
|
|
|
+ st=""
|
|
|
+ rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
|
|
|
+ branch=$(hg id -b 2>/dev/null)
|
|
|
+ if `hg st | grep -Eq "^\?"`; then
|
|
|
+ prompt_segment red black
|
|
|
+ st='±'
|
|
|
+ elif `hg st | grep -Eq "^(M|A)"`; then
|
|
|
+ prompt_segment yellow black
|
|
|
+ st='±'
|
|
|
+ else
|
|
|
+ prompt_segment green black
|
|
|
+ fi
|
|
|
+ echo -n "⭠ $rev@$branch" $st
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
# Dir: current working directory
|
|
|
prompt_dir() {
|
|
|
prompt_segment blue black '%~'
|
|
@@ -109,6 +144,7 @@ build_prompt() {
|
|
|
prompt_context
|
|
|
prompt_dir
|
|
|
prompt_git
|
|
|
+ prompt_hg
|
|
|
prompt_end
|
|
|
}
|
|
|
|