|
@@ -140,24 +140,30 @@ prompt_git() {
|
|
|
}
|
|
|
|
|
|
prompt_bzr() {
|
|
|
- (( $+commands[bzr] )) || return
|
|
|
- if (bzr status >/dev/null 2>&1); then
|
|
|
- status_mod=`bzr status | head -n1 | grep "modified" | wc -m`
|
|
|
- status_all=`bzr status | head -n1 | wc -m`
|
|
|
- revision=`bzr log | head -n2 | tail -n1 | sed 's/^revno: //'`
|
|
|
- if [[ $status_mod -gt 0 ]] ; then
|
|
|
- prompt_segment yellow black
|
|
|
- echo -n "bzr@"$revision "✚ "
|
|
|
- else
|
|
|
- if [[ $status_all -gt 0 ]] ; then
|
|
|
- prompt_segment yellow black
|
|
|
- echo -n "bzr@"$revision
|
|
|
- else
|
|
|
- prompt_segment green black
|
|
|
- echo -n "bzr@"$revision
|
|
|
- fi
|
|
|
- fi
|
|
|
+ (( $+commands[bzr] )) || return
|
|
|
+
|
|
|
+ # Test if bzr repository in directory hierarchy
|
|
|
+ local dir="$PWD"
|
|
|
+ while [[ ! -d "$dir/.bzr" ]]; do
|
|
|
+ [[ "$dir" = "/" ]] && return
|
|
|
+ dir="${dir:h}"
|
|
|
+ done
|
|
|
+
|
|
|
+ local bzr_status status_mod status_all revision
|
|
|
+ if bzr_status=$(bzr status 2>&1); then
|
|
|
+ status_mod=$(echo -n "$bzr_status" | head -n1 | grep "modified" | wc -m)
|
|
|
+ status_all=$(echo -n "$bzr_status" | head -n1 | wc -m)
|
|
|
+ revision=$(bzr log -r-1 --log-format line | cut -d: -f1)
|
|
|
+ if [[ $status_mod -gt 0 ]] ; then
|
|
|
+ prompt_segment yellow black "bzr@$revision ✚"
|
|
|
+ else
|
|
|
+ if [[ $status_all -gt 0 ]] ; then
|
|
|
+ prompt_segment yellow black "bzr@$revision"
|
|
|
+ else
|
|
|
+ prompt_segment green black "bzr@$revision"
|
|
|
+ fi
|
|
|
fi
|
|
|
+ fi
|
|
|
}
|
|
|
|
|
|
prompt_hg() {
|