On Mon, Mar 12, 2012 at 12:53:11PM -0600, dgbale...@0x01b.net wrote: > From: Matthew Monaco <matthew.mon...@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. > ---
I'm not really sure I understand the need for this. In what use case are multiple VCS definitions needed? > 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 We generally use arithmetic contexts elsewhere for numeric comparison. > + return > + elif [[ ${#vcs[@]} -ge 2 ]]; then > + local vcslen=${#vcs[@]} > + vcs=(${vcs[@]/${pkgname##*-}/}) I think you're intentionally performing whitespace splitting here to avoid counting problems. Even if that isn't the reason, it's not kosher. > + if [[ ${#vcs[@]} -eq $vcslen ]]; then > + warning "$(gettext "Ambiguous VCS package. > Cannot pick from: %s.")" "${vcs[*]}" > + return 0 > + fi > + vcs=${pkgname##*-} And after all that array business, vcs is now treated as a string. I appreciate bash's "dynamic" typing, but I rarely seek to abuse it. > + 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 > >