lib/autobuild/config.rb in autobuild-0.3 vs lib/autobuild/config.rb in autobuild-0.4

- old
+ new

@@ -1,10 +1,10 @@ require 'yaml' require 'pathname' require 'autobuild/config-interpolator' -require 'autobuild/logging' +require 'autobuild/reporting' require 'autobuild/package' require 'autobuild/importer' class Hash def keys_to_sym @@ -54,11 +54,11 @@ end check_backward_compatibility(config) config = config.keys_to_sym if !config[:autobuild] - raise ConfigException, "no autobuild block" + raise ConfigException, "no toplevel autobuild config block" end # Merge user_options into the autobuild block autobuild_config = config[:autobuild] default_options = Options.default @@ -68,35 +68,25 @@ elsif !autobuild_config.has_key?(sym) autobuild_config[sym] = default_options.send(sym) end } - $VERBOSE = config[:verbose] - $DEBUG = config[:debug] + $VERBOSE = autobuild_config[:verbose] + $trace = $DEBUG = autobuild_config[:debug] get_autobuild_config(config) get_package_config(config) - rescue ConfigException => error - error(error, "Error in config file '#{conffile}'") - exit(1) - rescue ImportException => error - error(error, "Error: unable to import #{p}") - exit(1) end def self.get_autobuild_config(config) $PROGRAMS = (config[:programs] or "make") autobuild = config[:autobuild] - $SRCDIR = autobuild[:srcdir] - $PREFIX = autobuild[:prefix] - if !$SRCDIR || !$PREFIX - raise ConfigException, 'you must at least set srcdir and prefix in the config files' - end + $SRCDIR = File.expand_path(autobuild[:srcdir], Dir.pwd) + $PREFIX = File.expand_path(autobuild[:prefix], Dir.pwd) + $LOGDIR = File.expand_path(autobuild[:logdir] || "autobuild", $PREFIX) - $LOGDIR = (autobuild[:logdir] || "#{$PREFIX}/autobuild") - FileUtils.mkdir_p $SRCDIR if !File.directory?($SRCDIR) FileUtils.mkdir_p $LOGDIR if !File.directory?($LOGDIR) if autobuild[:clean_log] puts "Cleaning log dir #{$LOGDIR}" FileUtils.rm_rf Dir.glob("#{$LOGDIR}/*.log") @@ -129,11 +119,11 @@ # Set the default dir if needed config[:srcdir] ||= name.to_s config[:prefix] ||= name.to_s - # Build the rake rules for this package + # Initializes the package Package.build(package_type, name, config) end def self.get_package_config(config) packages = config[:packages] @@ -157,9 +147,12 @@ config[:depends] = config[:depends].to_a.reject { |el| el == p.to_s } end add_package(p, config) end + + # Post-import, pre-build pass + Package.each(false) { |name, pkg| pkg.prepare } end private_class_method :get_autobuild_config, :get_package_config, :add_package end