Sha256: be84386ace88433fcb79273a64f0fa37ca243e524705ec2e9d647e4d651083fb
Contents?: true
Size: 1.73 KB
Versions: 5
Compression:
Stored size: 1.73 KB
Contents
require 'fileutils' require 'tempfile' require 'net/http' require 'progressbar' require 'zip/zip' def download(url) puts "Retrieving #{url}" name = url.split("/").last file = Tempfile.new("download_#{name}") url = URI.parse(url) req = Net::HTTP::Get.new(url.path) res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) {|resp| pbar = ProgressBar.new("", resp.content_length || 0) resp.read_body {|seg| pbar.inc(seg.length) file.write(seg) } pbar.finish } } file.rewind file end def unzip(fpath, tpath) Zip::ZipFile.open(fpath) { |zfile| zfile.each {|file| file_path = File.join(tpath, file.name) FileUtils.mkdir_p(File.dirname(file_path)) zfile.extract(file, file_path) } } end namespace :libs do desc "Download Bowline's binary and pre-compiled libs" task :download => :environment do FileUtils.mkdir_p(Bowline::Library.path) desktop_path = Bowline::Library.desktop_path libs_path = Bowline::Library.libs_path unless File.exist?(desktop_path) desktop_tmp = download(Bowline::Library::DESKTOP_URL) desktop_tmp.close puts "Extracting bowline-desktop.zip" unzip(desktop_tmp.path, Bowline::Library.path) FileUtils.chmod(0755, desktop_path) end unless File.directory?(libs_path) libs_tmp = download(Bowline::Library::LIBS_URL) libs_tmp.close puts "Extracting libs.zip" unzip(libs_tmp.path, Bowline::Library.path) end end task :setup => [:environment, "libs:download"] desc "Update Bowline's binary and pre-compiled libs" task :update => :environment do FileUtils.rm_rf(Bowline::Library.path) Rake::Task["libs:setup"].invoke end end
Version data entries
5 entries across 5 versions & 1 rubygems