# }}}
# VCS_INFO_*_detect () {{{
+VCS_INFO_detect_by_dir() {
+ local tool=${1} dirname=${2}
+ local basedir="."
+
+ check_com -c ${tool} || return 1
+ while [[ ! -d ${basedir}/${dirname} ]]; do
+ basedir=${basedir}/..
+ [[ $(VCS_INFO_realpath ${basedir}) = "/" ]] && return 1
+ done
+
+ printf '%s' $(VCS_INFO_realpath ${basedir})
+ return 0
+}
+
VCS_INFO_bzr_detect() {
- check_com -c bzr || return 1
- [[ -d ".bzr" ]] && return 0
- return 1
+ VCS_INFO_detect_by_dir 'bzr' '.bzr'
+ return $?
}
VCS_INFO_git_detect() {
}
VCS_INFO_hg_detect() {
- local basedir="."
-
- check_com -c hg || return 1
- while [[ ! -d ${basedir}/.hg ]]; do
- basedir=${basedir}/..
- [[ $(VCS_INFO_realpath ${basedir}) = "/" ]] && return 1
- done
-
- printf '%s' $(VCS_INFO_realpath ${basedir})
- return 0
+ VCS_INFO_detect_by_dir 'hg' '.hg'
+ return $?
}
VCS_INFO_svk_detect() {