aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/fetch.rb
diff options
context:
space:
mode:
authorAdam Vandenberg2013-08-06 19:53:43 -0700
committerAdam Vandenberg2013-09-11 22:05:27 -0700
commit91f22b7552bc3fb99eaafdd2f82dbd9e556f7d11 (patch)
treef340109a47862e7c4233103d1b8c1facb21837f3 /Library/Homebrew/cmd/fetch.rb
parentb37bbbfc315e98ff525e81a132d16bdc14aed53f (diff)
downloadhomebrew-91f22b7552bc3fb99eaafdd2f82dbd9e556f7d11.tar.bz2
Allow resource fetching
Closes #20047.
Diffstat (limited to 'Library/Homebrew/cmd/fetch.rb')
-rw-r--r--Library/Homebrew/cmd/fetch.rb27
1 files changed, 23 insertions, 4 deletions
diff --git a/Library/Homebrew/cmd/fetch.rb b/Library/Homebrew/cmd/fetch.rb
index f075bcdce..8af5ff7ca 100644
--- a/Library/Homebrew/cmd/fetch.rb
+++ b/Library/Homebrew/cmd/fetch.rb
@@ -16,14 +16,36 @@ module Homebrew extend self
end
puts "Fetching: #{bucket * ', '}" if bucket.size > 1
- bucket.each { |f| fetch_formula(f) }
+ bucket.each do |f|
+ fetch_formula(f)
+ f.resources.each do |r|
+ fetch_resource(r)
+ end
+ end
end
def already_fetched? f
f.cached_download.exist?
end
+ def fetch_resource r
+ puts "Resource: #{r.name}"
+ fetch_fetchable r
+ rescue ChecksumMismatchError => e
+ Homebrew.failed = true
+ opoo "Resource #{r.name} reports different #{e.hash_type}: #{e.expected}"
+ end
+
def fetch_formula f
+ fetch_fetchable f
+ rescue ChecksumMismatchError => e
+ Homebrew.failed = true
+ opoo "Formula reports different #{e.hash_type}: #{e.expected}"
+ end
+
+ private
+
+ def fetch_fetchable f
f.cached_download.rmtree if already_fetched?(f) && ARGV.force?
download = f.fetch
@@ -33,8 +55,5 @@ module Homebrew extend self
puts Checksum::TYPES.map { |t| "#{t.to_s.upcase}: #{download.send(t)}" }
f.verify_download_integrity(download)
- rescue ChecksumMismatchError => e
- Homebrew.failed = true
- opoo "Formula reports different #{e.hash_type}: #{e.expected}"
end
end