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