module Pkg::Util::RakeUtils
Utility methods for working with rake tasks. These utilities will not work if the packaging repo was loaded as a library unless rake has been required explicitly.
Public Class Methods
add_dependency(depender, dependency)
click to toggle source
Add a dependency to a rake task. “depender” must be an instance of Rake::Task, but dependency can be either a Rake::Task instance, or a String referring to the name of a Rake::Task instance.
# File lib/packaging/util/rake_utils.rb, line 36 def add_dependency(depender, dependency) if using_rake? if !task_defined?(depender) fail "Could not locate a Rake task named '#{depender.to_s}' to add a dependency of '#{dependency.to_s}' to" elsif !task_defined?(dependency) fail "Could not locate a Rake task named '#{dependency.to_s}' to add as a dependency of '#{depender.to_s}'" else depender_task = Rake::Task[depender] depender_task.enhance([dependency]) end end end
evaluate_pre_tasks()
click to toggle source
Evaluate any pre-tasks known by the configuration of this invocation. Again, this is quite pointless if the user has not invoked the packaging repo via rake, so we're just not going to do anything.
# File lib/packaging/util/rake_utils.rb, line 53 def evaluate_pre_tasks if using_rake? and Pkg::Config.pre_tasks unless Pkg::Config.pre_tasks.is_a?(Hash) fail "The 'pre_tasks' key must be a Hash of depender => dependency pairs" end Pkg::Config.pre_tasks.each do |depender, dependency| add_dependency(depender, dependency) end end end
get_task(task_name)
click to toggle source
Return the Rake::Task object associated with a task name
# File lib/packaging/util/rake_utils.rb, line 21 def get_task(task_name) if using_rake? and task_defined?(task_name) Rake::Task[task_name] end end
invoke_task(task, *args)
click to toggle source
# File lib/packaging/util/rake_utils.rb, line 27 def invoke_task(task, *args) Rake::Task[task].reenable Rake::Task[task].invoke(*args) end
load_packaging_tasks(packaging_root = Pkg::Config.packaging_root)
click to toggle source
# File lib/packaging/util/rake_utils.rb, line 64 def load_packaging_tasks(packaging_root = Pkg::Config.packaging_root) packaging_task_dir = File.join(packaging_root, 'tasks') tasks = [ '00_utils.rake', '30_metrics.rake', 'apple.rake', 'archive.rake', 'build.rake', 'clean.rake', 'deb.rake', 'deb_repos.rake', 'doc.rake', 'education.rake', 'fetch.rake', 'gem.rake', 'jenkins.rake', 'jenkins_dynamic.rake', 'load_extras.rake', 'mock.rake', 'nightly_repos.rake', 'pe_deb.rake', 'pe_rpm.rake', 'pe_ship.rake', 'pe_sign.rake', 'pe_tar.rake', 'retrieve.rake', 'rpm.rake', 'rpm_repos.rake', 'ship.rake', 'sign.rake', 'tag.rake', 'tar.rake', 'update.rake', 'vendor_gems.rake', 'version.rake', 'z_data_dump.rake', 'config.rake', 'vanagon.rake', 'deprecated.rake' ] tasks.each do |task| load File.join(packaging_task_dir, task) end Pkg::Util::RakeUtils.evaluate_pre_tasks end
task_defined?(task_name)
click to toggle source
# File lib/packaging/util/rake_utils.rb, line 13 def task_defined?(task_name) if using_rake? Rake::Task.task_defined?(task_name) end end
using_rake?()
click to toggle source
# File lib/packaging/util/rake_utils.rb, line 9 def using_rake? defined?(Rake::Task) end