Sha256: 95399a1c52e7d6b273d1ecf03bf3e61e20f07ea9ad0553e992d1d3dd06afb63f
Contents?: true
Size: 1.71 KB
Versions: 1
Compression:
Stored size: 1.71 KB
Contents
require 'rbbt/util/tsv' require 'rbbt/util/open' require 'rbbt/util/log' module RakeHelper def self.files(rakefile, task = :default, chdir = nil) status = nil files = nil TmpFile.with_file do |f| pid = Process.fork{ require 'rake' FileUtils.chdir chdir if chdir Rake::FileTask.module_eval do class << self alias_method :old_define_task, :define_task end def self.define_task(file, *args, &block) @@files ||= [] @@files << file old_define_task(file, *args, &block) end def self.files @@files end end load rakefile Open.write(f, Rake::FileTask.files * "\n") exit } pid, status = Process.waitpid2(pid) files = Open.read(f).split("\n") end raise "Error getting files from Rake: #{ rakefile } " unless status.success? files end def self.run(rakefile, task = :default, chdir = nil) pid = Process.fork{ require 'rake' FileUtils.chdir chdir if chdir Rake::FileTask.module_eval do class << self alias_method :old_define_task, :define_task end def self.define_task(file, *args, &block) @@files ||= [] @@files << file old_define_task(file, *args, &block) end def self.files @@files end end load rakefile task(:default) do |t| Rake::FileTask.files.each do |file| Rake::Task[file].invoke end end Rake::Task[task].invoke exit } pid, status = Process.waitpid2(pid) raise "Error in Rake: #{ rakefile } => #{ task }" unless status.success? end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rbbt-util-1.2.1 | lib/rbbt/util/rake.rb |