Module: Dev::Consul::Build
- Defined in:
- lib/dev/consul/build.rb
Overview
Tools to fetch and extract Hashicorp’s platform builds of Consul
Constant Summary collapse
- REPOSITORY =
"https://releases.hashicorp.com/consul/#{VERSION}".freeze
- PACKAGES =
[ "consul_#{VERSION}_darwin_386.zip", "consul_#{VERSION}_darwin_amd64.zip", "consul_#{VERSION}_freebsd_386.zip", "consul_#{VERSION}_freebsd_amd64.zip", "consul_#{VERSION}_freebsd_arm.zip", "consul_#{VERSION}_linux_386.zip", "consul_#{VERSION}_linux_amd64.zip", "consul_#{VERSION}_linux_arm.zip", "consul_#{VERSION}_solaris_amd64.zip" ].freeze
Class Method Summary collapse
Class Method Details
.fetch ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/dev/consul/build.rb', line 32 def fetch uri = URI.parse(REPOSITORY) client = Net::HTTP.new(uri.host, uri.port) client.use_ssl = true if uri.scheme == 'https' PACKAGES.each do |package| puts "Fetch #{File.join(uri.path, package)}" request = Net::HTTP::Get.new(File.join(uri.path, package)) client.request(request) do |response| Zip::Archive.open_buffer(response.body) do |archive| archive.each do |file| next unless file.name == 'consul' open(File.join(Consul.bindir, File.basename(package, '.zip')), 'wb', 00755) { |io| io.write(file.read) } end end end end end |