From 23f2b4503c9d7697e382fed550d3bf846b81dd5c Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 19 Sep 2008 12:58:46 +0000 Subject: users/13252 and elsewhere: Frank Terbeck plus tweaks: add VCS_Info function system --- Functions/VCS_Info/VCS_INFO_bydir_detect | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Functions/VCS_Info/VCS_INFO_bydir_detect (limited to 'Functions/VCS_Info/VCS_INFO_bydir_detect') diff --git a/Functions/VCS_Info/VCS_INFO_bydir_detect b/Functions/VCS_Info/VCS_INFO_bydir_detect new file mode 100644 index 000000000..aff59f300 --- /dev/null +++ b/Functions/VCS_Info/VCS_INFO_bydir_detect @@ -0,0 +1,25 @@ +## vim:ft=zsh +## Written by Frank Terbeck +## Distributed under the same BSD-ish license as zsh itself. + +setopt localoptions NO_shwordsplit +local dirname=$1 +local basedir="." realbasedir + +realbasedir="$(VCS_INFO_realpath ${basedir})" +while [[ ${realbasedir} != '/' ]]; do + if [[ -n ${vcs_comm[detect_need_file]} ]] ; then + [[ -d ${basedir}/${dirname} ]] && \ + [[ -f ${basedir}/${dirname}/${vcs_comm[detect_need_file]} ]] && \ + break + else + [[ -d ${basedir}/${dirname} ]] && break + fi + + basedir=${basedir}/.. + realbasedir="$(VCS_INFO_realpath ${basedir})" +done + +[[ ${realbasedir} == "/" ]] && return 1 +vcs_comm[basedir]=${realbasedir} +return 0 -- cgit 1.4.1