#! /usr/bin/env ruby begin require 'daemons' rescue LoadError end require 'autobuild' include Autobuild DEFAULT_HTTP_PORT = 2000 # Load the command line options conffile, *packages = Autobuild.commandline(ARGV) Autobuild.packages = packages # make conffile an absolute path since daemonize mode makes # / the current directory conffile = File.expand_path(conffile, Dir.pwd) if Autobuild.daemonize puts "Going into daemon mode ..." Daemons.daemonize end Reporting << StdoutReporter.new begin Reporting.report do load conffile if Autobuild.mail[:to] Reporting << MailReporter.new(Autobuild.mail) end targets = ['import'] targets += ['prepare', 'build'] if Autobuild.do_build targets.each do |phase| packages = Autobuild.packages packages = Autobuild.default_packages if packages.empty? if packages.empty? Rake::Task[phase].invoke else packages.each do |pkg| Rake::Task["#{pkg}-#{phase}"].invoke end end end Reporting.success end rescue ThreadError STDERR.puts "Rake failed with a ThreadError" STDERR.puts "You may have a circular dependency in your packages" rescue Interrupt STDERR.puts "interrupted" end