[pacman-dev] [PATCH 2/6] makepkg: devel_check(): determine vcs
dgbaley27 at 0x01b.net
dgbaley27 at 0x01b.net
Mon Mar 12 14:53:11 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, use the package name as a hint.
If that doesn't work, abort.
---
scripts/makepkg.sh.in | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 05a611d..1eb62ca 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1714,6 +1714,27 @@ 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[@]} -eq 0 ]]; then
+ return
+ elif [[ ${#vcs[@]} -ge 2 ]]; then
+ local vcslen=${#vcs[@]}
+ vcs=(${vcs[@]/${pkgname##*-}/})
+ if [[ ${#vcs[@]} -eq $vcslen ]]; then
+ warning "$(gettext "Ambiguous VCS package. Cannot pick from: %s.")" "${vcs[*]}"
+ return 0
+ fi
+ vcs=${pkgname##*-}
+ 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