Merge pull request #3465 from sjackman/vcs-requirement

Add CVSRequirement and SubversionRequirement
This commit is contained in:
Mike McQuaid 2017-11-26 12:47:11 +00:00 committed by GitHub
commit 7f1d5903ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 6 deletions

View File

@ -159,7 +159,9 @@ class DependencyCollector
elsif strategy <= BazaarDownloadStrategy
Dependency.new("bazaar", tags)
elsif strategy <= CVSDownloadStrategy
Dependency.new("cvs", tags) if MacOS.version >= :mavericks || !MacOS::Xcode.provides_cvs?
CVSRequirement.new(tags)
elsif strategy <= SubversionDownloadStrategy
SubversionRequirement.new(tags)
elsif strategy < AbstractDownloadStrategy
# allow unknown strategies to pass through
else

View File

@ -174,10 +174,6 @@ module OS
version < "4.3"
end
def provides_cvs?
version < "5.0"
end
def default_prefix?
if version < "4.3"
prefix.to_s.start_with? "/Developer"

View File

@ -114,10 +114,15 @@ class ArchRequirement < Requirement
end
end
class CVSRequirement < Requirement
fatal true
default_formula "cvs"
satisfy { which "cvs" }
end
class MercurialRequirement < Requirement
fatal true
default_formula "mercurial"
satisfy { which("hg") }
end
@ -126,3 +131,9 @@ class GitRequirement < Requirement
default_formula "git"
satisfy { Utils.git_available? }
end
class SubversionRequirement < Requirement
fatal true
default_formula "subversion"
satisfy { Utils.svn_available? }
end

View File

@ -84,6 +84,18 @@ describe DependencyCollector do
expect(subject.add(resource)).to be_an_instance_of(GitRequirement)
end
it "creates a resource dependency from a CVS URL" do
resource = Resource.new
resource.url(":pserver:anonymous:@example.com:/cvsroot/foo/bar", using: :cvs)
expect(subject.add(resource)).to be_an_instance_of(CVSRequirement)
end
it "creates a resource dependency from a Subversion URL" do
resource = Resource.new
resource.url("svn://example.com/foo/bar")
expect(subject.add(resource)).to be_an_instance_of(SubversionRequirement)
end
it "creates a resource dependency from a '.7z' URL" do
resource = Resource.new
resource.url("http://example.com/foo.7z")