Add clone_repo to remaining VCS strategies
This commit is contained in:
parent
8debc18839
commit
3a20562d6e
@ -72,6 +72,9 @@ class VCSDownloadStrategy < AbstractDownloadStrategy
|
||||
true
|
||||
end
|
||||
|
||||
def clone_repo
|
||||
end
|
||||
|
||||
def extract_ref(specs)
|
||||
key = REF_TYPES.find { |type| specs.key?(type) }
|
||||
return key, specs[key]
|
||||
@ -586,20 +589,15 @@ class CVSDownloadStrategy < VCSDownloadStrategy
|
||||
def fetch
|
||||
ohai "Checking out #{@url}"
|
||||
|
||||
# URL of cvs cvs://:pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML:gccxml
|
||||
# will become:
|
||||
# cvs -d :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML login
|
||||
# cvs -d :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML co gccxml
|
||||
mod, url = split_url(@url)
|
||||
|
||||
unless @clone.exist?
|
||||
HOMEBREW_CACHE.cd do
|
||||
safe_system cvspath, '-d', url, 'login'
|
||||
safe_system cvspath, '-d', url, 'checkout', '-d', cache_filename, mod
|
||||
end
|
||||
else
|
||||
if @clone.exist? && repo_valid?
|
||||
puts "Updating #{@clone}"
|
||||
@clone.cd { safe_system cvspath, 'up' }
|
||||
@clone.cd { safe_system cvspath, "up" }
|
||||
elsif @clone.exist?
|
||||
puts "Removing invalid CVS repo from cache"
|
||||
clear_cache
|
||||
clone_repo
|
||||
else
|
||||
clone_repo
|
||||
end
|
||||
end
|
||||
|
||||
@ -617,6 +615,19 @@ class CVSDownloadStrategy < VCSDownloadStrategy
|
||||
@clone.join("CVS").directory?
|
||||
end
|
||||
|
||||
def clone_repo
|
||||
# URL of cvs cvs://:pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML:gccxml
|
||||
# will become:
|
||||
# cvs -d :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML login
|
||||
# cvs -d :pserver:anoncvs@www.gccxml.org:/cvsroot/GCC_XML co gccxml
|
||||
mod, url = split_url(@url)
|
||||
|
||||
HOMEBREW_CACHE.cd do
|
||||
safe_system cvspath, "-d", url, "login"
|
||||
safe_system cvspath, "-d", url, "checkout", "-d", cache_filename, mod
|
||||
end
|
||||
end
|
||||
|
||||
def split_url(in_url)
|
||||
parts=in_url.sub(%r[^cvs://], '').split(/:/)
|
||||
mod=parts.pop
|
||||
@ -650,11 +661,6 @@ class MercurialDownloadStrategy < VCSDownloadStrategy
|
||||
end
|
||||
end
|
||||
|
||||
def clone_repo
|
||||
url = @url.sub(%r[^hg://], '')
|
||||
safe_system hgpath, 'clone', url, @clone
|
||||
end
|
||||
|
||||
def stage
|
||||
dst = Dir.getwd
|
||||
@clone.cd do
|
||||
@ -677,6 +683,11 @@ class MercurialDownloadStrategy < VCSDownloadStrategy
|
||||
@clone.join(".hg").directory?
|
||||
end
|
||||
|
||||
def clone_repo
|
||||
url = @url.sub(%r[^hg://], "")
|
||||
safe_system hgpath, "clone", url, @clone
|
||||
end
|
||||
|
||||
def hgpath
|
||||
@path ||= %W[
|
||||
#{which("hg")}
|
||||
@ -702,12 +713,6 @@ class BazaarDownloadStrategy < VCSDownloadStrategy
|
||||
end
|
||||
end
|
||||
|
||||
def clone_repo
|
||||
url = @url.sub(%r[^bzr://], '')
|
||||
# 'lightweight' means history-less
|
||||
safe_system bzrpath, 'checkout', '--lightweight', url, @clone
|
||||
end
|
||||
|
||||
def stage
|
||||
# FIXME: The export command doesn't work on checkouts
|
||||
# See https://bugs.launchpad.net/bzr/+bug/897511
|
||||
@ -725,6 +730,12 @@ class BazaarDownloadStrategy < VCSDownloadStrategy
|
||||
@clone.join(".bzr").directory?
|
||||
end
|
||||
|
||||
def clone_repo
|
||||
url = @url.sub(%r[^bzr://], "")
|
||||
# "lightweight" means history-less
|
||||
safe_system bzrpath, "checkout", "--lightweight", url, @clone
|
||||
end
|
||||
|
||||
def bzrpath
|
||||
@path ||= %W[
|
||||
#{which("bzr")}
|
||||
@ -736,12 +747,16 @@ end
|
||||
class FossilDownloadStrategy < VCSDownloadStrategy
|
||||
def fetch
|
||||
ohai "Cloning #{@url}"
|
||||
unless @clone.exist?
|
||||
url=@url.sub(%r[^fossil://], '')
|
||||
safe_system fossilpath, 'clone', url, @clone
|
||||
else
|
||||
|
||||
if @clone.exist? && repo_valid?
|
||||
puts "Updating #{@clone}"
|
||||
safe_system fossilpath, 'pull', '-R', @clone
|
||||
safe_system fossilpath, "pull", "-R", @clone
|
||||
elsif @clone.exist?
|
||||
puts "Removing invalid fossil repo from cache"
|
||||
clear_cache
|
||||
clone_repo
|
||||
else
|
||||
clone_repo
|
||||
end
|
||||
end
|
||||
|
||||
@ -764,6 +779,11 @@ class FossilDownloadStrategy < VCSDownloadStrategy
|
||||
true
|
||||
end
|
||||
|
||||
def clone_repo
|
||||
url = @url.sub(%r[^fossil://], "")
|
||||
safe_system fossilpath, "clone", url, @clone
|
||||
end
|
||||
|
||||
def fossilpath
|
||||
@path ||= %W[
|
||||
#{which("fossil")}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user