lib/blender/manifest/root.rb in server-blender-manifest-0.0.17 vs lib/blender/manifest/root.rb in server-blender-manifest-0.0.18
- old
+ new
@@ -13,10 +13,16 @@
require 'blender/manifest/nodes'
require 'blender/manifest/roles'
require 'blender/manifest/mixer'
+# FIXME: this whole setup/regular execution is ugly. need to think of a better scheme
+# Motivation behind the 'setup' thing:
+# - on some platforms we need to do stuff *before* any of the real recipes are running
+# an example is Darwin where you need to change the default package provider
+# to 'ports' BEFORE you define any package resources
+# - so we create 2 manifests. one that executes the 'setup' recipes, and another one that executes the rest.
class Root < ::ShadowPuppet::Manifest
include Blender::Manifest::Nodes
include Blender::Manifest::Roles
@@mixed_recipes = []
@@ -35,10 +41,13 @@
mix "os/#{os.downcase}"
if :setup == @stage
# run OS specific setup recipe.
m = "#{os.downcase}_setup"
- return send(m) if respond_to?(m)
+ send(m) if respond_to?(m)
+ # run gemeric setup
+ send(:setup) if respond_to?(:setup)
+ return
end
raise "no RECIPE to execute" unless recipe = ENV['RECIPE']
# run OS specific recipe.
\ No newline at end of file