require 'rubygems' require 'bundler' Bundler::GemHelper.install_tasks task :default => :build # common methods for package build scripts require 'fileutils' require "erb" def version require project_root_path('lib/td/version') TreasureData::VERSION end def project_root_path(path) "#{PROJECT_ROOT}/#{path}" end PROJECT_ROOT = File.expand_path(File.dirname(__FILE__)) USE_GEMS = ["#{PROJECT_ROOT}/pkg/td-#{version}.gem"] def install_use_gems(target_dir) unless ENV['GEM_HOME'].to_s.empty? puts "**" puts "** WARNING" puts "**" puts "** GEM_HOME is already set. Created package might be broken." puts "** RVM surely breaks the package. Use rbenv instead." puts "**" end # system(env, cmd) doesn't work with ruby 1.8 ENV['GEM_HOME'] = target_dir ENV['GEM_PATH'] = '' USE_GEMS.each {|gem| system "gem install '#{gem}' --no-rdoc --no-ri" } end def resource_path(path) project_root_path("dist/resources/#{path}") end def install_resource(resource_name, target_path, mode) FileUtils.mkdir_p File.dirname(target_path) FileUtils.cp resource_path(resource_name), target_path File.chmod(mode, target_path) end def install_erb_resource(resource_name, target_path, mode, variables) FileUtils.mkdir_p File.dirname(target_path) erb_raw = File.read resource_path(resource_name) ctx = Object.new variables.each_pair {|k,v| # ctx.define_singleton_method(k) { v } doesn't work with ruby 1.8 (class<