fi
# }}}
-# display version control information on right side of prompt if $VCS is set {{{
-# based on Mike Hommey's http://web.glandium.org/blog/?p=170
-__vcs_dir() {
- local vcs base_dir sub_dir ref
-
- sub_dir() {
- local sub_dir
- sub_dir=$(readlink -f "${PWD}")
- sub_dir=${sub_dir#$1}
- echo ${sub_dir#/}
- }
-
- git_dir() {
- base_dir=$(git-rev-parse --show-cdup 2>/dev/null) || return 1
- base_dir=$(readlink -f "$base_dir/..")
- sub_dir=$(git-rev-parse --show-prefix)
- sub_dir=${sub_dir%/}
- ref=$(git-symbolic-ref -q HEAD || git-name-rev --name-only HEAD 2>/dev/null)
- ref=${ref#refs/heads/}
- vcs="git"
- }
-
- svn_dir() {
- [[ -d ".svn" ]] || return 1
- base_dir="."
- while [[ -d "$base_dir/../.svn" ]]; do base_dir="$base_dir/.."; done
- base_dir=$(readlink -f "$base_dir")
- sub_dir=$(sub_dir "${base_dir}")
- ref=$(svn info "$base_dir" | awk '/^URL/ { sub(".*/","",$0); r=$0 } /^Revision/ { sub("[^0-9]*","",$0); print r":"$0 }')
- vcs="svn"
- }
-
- svk_dir() {
- [[ -f ~/.svk/config ]] || return 1
- base_dir=$(awk '/: *$/ { sub(/^ */,"",$0); sub(/: *$/,"",$0); if (match("'${PWD}'", $0"(/|$)")) { print $0; d=1; } } /depotpath/ && d == 1 { sub(".*/","",$0); r=$0 } /revision/ && d == 1 { print r ":" $2; exit 1 }' ~/.svk/config) && return 1
- ref=${base_dir##*
- }
- base_dir=${base_dir%%
- *}
- sub_dir=$(sub_dir "${base_dir}")
- vcs="svk"
- }
-
- hg_dir() {
- base_dir="."
- while [[ ! -d "$base_dir/.hg" ]]; do
- base_dir="$base_dir/.."
- [[ $(readlink -f "${base_dir}") = "/" ]] && return 1
- done
- base_dir=$(readlink -f "$base_dir")
- sub_dir=$(sub_dir "${base_dir}")
- ref=$(< "${base_dir}/.hg/branch")
- vcs="hg"
- }
-
- hg_dir ||
- git_dir ||
- svn_dir ||
- svk_dir # ||
- # base_dir="$PWD"
- # echo "${vcs:+($vcs)}${base_dir/$HOME/~}${vcs:+[$ref]${sub_dir}}"
- echo "${vcs:+($vcs)}${base_dir}${vcs:+[$ref]${sub_dir}}"
-}
-
-# gather version control information for inclusion in a prompt
+# gather version control information for inclusion in a prompt {{{
# vcs_info() documentation: {{{
#
if [[ -n $BATTERY ]] ; then
RPROMPT="%(?..:()% ${PERCENT}${SCREENTITLE}"
# RPROMPT="${PERCENT}${SCREENTITLE}"
- elif [[ -n $VCS ]] ; then
- RPROMPT="%(?..:()% $(__vcs_dir)${SCREENTITLE}"
else
RPROMPT="%(?..:()% ${SCREENTITLE}"
# RPROMPT="${SCREENTITLE}"