require 'rake/clean' WARNING = <<-EOS.freeze WARNING: you may not have wget installed, you could just download the correct version of jruby-complete to the vendors folder, and re-run k9 setup install instead of installing wget. Some systems may also require 'sudo' access to install, NB: this is untested.... EOS JRUBYC_VERSION = '9.1.6.0' EXAMPLES = '1.7' HOME_DIR = ENV['HOME'] MAC_OR_LINUX = /linux|mac|darwin/ =~ RbConfig::CONFIG['host_os'] CLOBBER.include("jruby-complete-#{JRUBYC_VERSION}.jar") desc "download, and copy to jruby_art" task :default => [:download, :copy_ruby] desc "download JRuby upstream sources" task :download => ["jruby-complete-#{JRUBYC_VERSION}.jar"] file "jruby-complete-#{JRUBYC_VERSION}.jar" do begin sh "wget https://s3.amazonaws.com/jruby.org/downloads/#{JRUBYC_VERSION}/jruby-complete-#{JRUBYC_VERSION}.jar" rescue warn(WARNING) end check_sha256("jruby-complete-#{JRUBYC_VERSION}.jar", "2a45c5f24deb538343c3a9b9a3b29bbeb11fa9d91cf8649271bd07d2e1aa28cb") end directory "../lib/ruby" desc "copy jruby-complete" task :copy_ruby => ["../lib/ruby"] do sh "cp -v jruby-complete-#{JRUBYC_VERSION}.jar ../lib/ruby/jruby-complete.jar" end def check_sha256(filename, expected_hash) require "digest" sha256 = Digest::SHA256.new File.open(filename, "r") do |f| while buf = f.read(4096) sha256.update(buf) end end if sha256.hexdigest != expected_hash raise "bad sha256 checksum for #{filename} (expected #{expected_hash} got #{sha256.hexdigest})" end end desc "download, and copy to jruby_art" task :unpack_samples => [:download_examples, :copy_examples] desc 'download and copy examples to user home' task :download_examples file_name = (MAC_OR_LINUX.nil?) ? "#{EXAMPLES}.zip" : "#{EXAMPLES}.tar.gz" file file_name do begin if MAC_OR_LINUX.nil? sh "wget https://github.com/ruby-processing/JRubyArt-examples/archive/#{EXAMPLES}.zip" else sh "wget https://github.com/ruby-processing/JRubyArt-examples/archive/#{EXAMPLES}.tar.gz" end rescue warn(WARNING) end end desc "copy examples" task :copy_examples => file_name do if MAC_OR_LINUX.nil? sh "unzip #{EXAMPLES}.zip" else sh "tar xzvf #{EXAMPLES}.tar.gz" end sh "rm -r #{HOME_DIR}/k9_samples" if File.exist? "#{HOME_DIR}/k9_samples" sh "cp -r JRubyArt-examples-#{EXAMPLES} #{HOME_DIR}/k9_samples" sh "rm -r JRubyArt-examples-#{EXAMPLES}" end