[pacman-dev] [PATCH v3 2/5] makepkg: devel_check(): determine vcs

Matthew Monaco dgbaley27 at 0x01b.net
Mon Mar 12 21:14:19 EDT 2012


From: Matthew Monaco <matthew.monaco at 0x01b.net>

Rather than prioritizing an arbitrary VCS, collect all development
directives. If there is more than one, give a warning and abort.
---
 scripts/makepkg.sh.in |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 05a611d..46e787f 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1714,6 +1714,22 @@ devel_check() {
 		# calls to makepkg via fakeroot will explicitly pass the version
 		# number to avoid having to determine the version number twice.
 		# Also do a check to make sure we have the VCS tool available.
+		local vcs=()
+
+		[[ -n ${_darcstrunk} && -n ${_darcsmod} ]] && vcs+=("darcs")
+		[[ -n ${_cvsroot}    && -n ${_cvsmod}   ]] && vcs+=("cvs")
+		[[ -n ${_gitroot}    && -n ${_gitname}  ]] && vcs+=("git")
+		[[ -n ${_svntrunk}   && -n ${_svnmod}   ]] && vcs+=("svn")
+		[[ -n ${_bzrtrunk}   && -n ${_bzrmod}   ]] && vcs+=("bzr")
+		[[ -n ${_hgroot}     && -n ${_hgrepo}   ]] && vcs+=("hg")
+
+		if (( ${#vcs[@]} == 0 )); then
+			return
+		elif (( ${#vcs[@]} > 1 )); then
+			warning "$(gettext "Ambiguous VCS package. Cannot pick from: %s.")" "${vcs[*]}"
+			return 0
+		fi
+
 		if [[ -n ${_darcstrunk} && -n ${_darcsmod} ]] ; then
 			if ! type -p darcs >/dev/null; then
 				warning "$(gettext "Cannot find the %s binary required to determine latest %s revision.")" "darcs" "darcs"
-- 
1.7.9.3



More information about the pacman-dev mailing list