diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2008-09-19 12:58:46 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2008-09-19 12:58:46 +0000 |
commit | 23f2b4503c9d7697e382fed550d3bf846b81dd5c (patch) | |
tree | 8953de32c2d4126882d9d4c66bcbe7b8615e3419 /Functions/VCS_Info/VCS_INFO_bydir_detect | |
parent | d9f1432e074872aa3a89515bc65ede5ad6551a47 (diff) | |
download | zsh-23f2b4503c9d7697e382fed550d3bf846b81dd5c.tar.gz zsh-23f2b4503c9d7697e382fed550d3bf846b81dd5c.tar.xz zsh-23f2b4503c9d7697e382fed550d3bf846b81dd5c.zip |
users/13252 and elsewhere: Frank Terbeck plus tweaks:
add VCS_Info function system
Diffstat (limited to 'Functions/VCS_Info/VCS_INFO_bydir_detect')
-rw-r--r-- | Functions/VCS_Info/VCS_INFO_bydir_detect | 25 |
1 files changed, 25 insertions, 0 deletions
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 <ft@bewatermyfriend.org> +## 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 |