Skip to content

Commit

Permalink
(#17067) Load packaging tasks when available
Browse files Browse the repository at this point in the history
This commit adds code to the Rakefile that loads packaging.rake if it exists.
That file defines tasks to fetch and remove the packaging tools, and to load
them when they are present.
  • Loading branch information
haus committed Nov 1, 2013
1 parent d1aa2bb commit 171210b
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# Rakefile to build a project using HUDSON
RAKE_ROOT = File.expand_path(File.dirname(__FILE__))

begin
require 'rdoc/task'
Expand Down Expand Up @@ -26,6 +27,11 @@ ENV["DEB_DISTRIBUTION"] ? PKG_DEB_DISTRIBUTION = ENV["DEB_DISTRIBUTION"] : PKG_D

CLEAN.include(["build", "doc"])

begin
load File.join(RAKE_ROOT, 'ext', 'packaging.rake')
rescue LoadError
end

def announce(msg='')
STDERR.puts "================"
STDERR.puts msg
Expand Down
36 changes: 36 additions & 0 deletions ext/packaging.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
build_defs_file = File.join(RAKE_ROOT, 'ext', 'build_defaults.yaml')
if File.exist?(build_defs_file)
begin
require 'yaml'
@build_defaults ||= YAML.load_file(build_defs_file)
rescue Exception => e
STDERR.puts "Unable to load yaml from #{build_defs_file}:"
raise e
end
@packaging_url = @build_defaults['packaging_url']
@packaging_repo = @build_defaults['packaging_repo']
raise "Could not find packaging url in #{build_defs_file}" if @packaging_url.nil?
raise "Could not find packaging repo in #{build_defs_file}" if @packaging_repo.nil?

namespace :package do
desc "Bootstrap packaging automation, e.g. clone into packaging repo"
task :bootstrap do
if File.exist?(File.join(RAKE_ROOT, "ext", @packaging_repo))
puts "It looks like you already have ext/#{@packaging_repo}. If you don't like it, blow it away with package:implode."
else
cd File.join(RAKE_ROOT, 'ext') do
%x{git clone #{@packaging_url}}
end
end
end
desc "Remove all cloned packaging automation"
task :implode do
rm_rf File.join(RAKE_ROOT, "ext", @packaging_repo)
end
end
end

begin
load File.join(RAKE_ROOT, 'ext', 'packaging', 'packaging.rake')
rescue LoadError
end

0 comments on commit 171210b

Please sign in to comment.