mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-08-18 17:20:59 +02:00
40 lines
1.4 KiB
Bash
40 lines
1.4 KiB
Bash
## vim:ft=zsh
|
|
## svk support by: Frank Terbeck <ft@bewatermyfriend.org>
|
|
## Distributed under the same BSD-ish license as zsh itself.
|
|
|
|
setopt localoptions NO_shwordsplit
|
|
|
|
[[ $1 == '--flavours' ]] && return 1
|
|
|
|
# This detection function is a bit different from the others.
|
|
# We need to read svk's config file to detect a svk repository
|
|
# in the first place. Therefore, we'll just proceed and read
|
|
# the other information, too. This is more then any of the
|
|
# other detections do but this takes only one file open for
|
|
# svk at most. VCS_INFO_get_data_svk() gets simpler, too. :-)
|
|
|
|
setopt localoptions noksharrays extendedglob
|
|
local -i fhash
|
|
fhash=0
|
|
|
|
VCS_INFO_check_com svk || return 1
|
|
[[ -f ~/.svk/config ]] || return 1
|
|
|
|
while IFS= read -r line ; do
|
|
if [[ -n ${vcs_comm[basedir]} ]] ; then
|
|
line=${line## ##}
|
|
[[ ${line} == depotpath:* ]] && vcs_comm[branch]=${line##*/}
|
|
[[ ${line} == revision:* ]] && vcs_comm[revision]=${line##*[[:space:]]##}
|
|
[[ -n ${vcs_comm[branch]} ]] && [[ -n ${vcs_comm[revision]} ]] && break
|
|
continue
|
|
fi
|
|
(( fhash > 0 )) && [[ ${line} == ' '[^[:space:]]*:* ]] && break
|
|
[[ ${line} == ' hash:'* ]] && fhash=1 && continue
|
|
(( fhash == 0 )) && continue
|
|
[[ ${PWD}/ == ${${line## ##}%:*}/* ]] && vcs_comm[basedir]=${${line## ##}%:*}
|
|
done < ~/.svk/config
|
|
|
|
[[ -n ${vcs_comm[basedir]} ]] && \
|
|
[[ -n ${vcs_comm[branch]} ]] && \
|
|
[[ -n ${vcs_comm[revision]} ]] && return 0
|
|
return 1
|