class Kondate::ItamaeBootstrap

Public Class Methods

bootstrap(context) click to toggle source

@param [Itamae::Recipe::EvalContext] context itamae context

# File lib/kondate/itamae_bootstrap.rb, line 4
def self.bootstrap(context)
  self.new(context).bootstrap
end
new(context) click to toggle source

@param [Itamae::Recipe::EvalContext] context itamae context

# File lib/kondate/itamae_bootstrap.rb, line 9
def initialize(context)
  @context = context
end

Public Instance Methods

bootstrap() click to toggle source
# File lib/kondate/itamae_bootstrap.rb, line 13
def bootstrap
  $stdout.sync = true
  $stderr.sync = true
  tweak_logger
  bootstrap_middleware_recipes
  bootstrap_role_recipes
end

Private Instance Methods

bootstrap_middleware_recipes() click to toggle source
# File lib/kondate/itamae_bootstrap.rb, line 42
def bootstrap_middleware_recipes
  recipes = node['attributes'].keys
  recipes.each do |recipe|
    secret_recipe_file = File.join(Config.secret_middleware_recipes_dir, recipe, "default.rb")
    recipe_file = File.join(Config.middleware_recipes_dir, recipe, "default.rb")
    File.exist?(secret_recipe_file) ? include_recipe(secret_recipe_file) : include_recipe(recipe_file)
  end
end
bootstrap_role_recipes() click to toggle source
# File lib/kondate/itamae_bootstrap.rb, line 51
def bootstrap_role_recipes
  sep = File::SEPARATOR
  secret_role_recipe_file = RoleFile.explore(Config.secret_roles_recipes_dir, node[:role], "#{sep}default.rb")
  role_recipe_file = RoleFile.explore(Config.roles_recipes_dir, node[:role], "#{sep}default.rb")
  if File.exist?(secret_role_recipe_file)
    include_recipe(secret_role_recipe_file)
  elsif File.exist?(role_recipe_file)
    include_recipe(role_recipe_file)
  end
end
include_recipe(recipe) click to toggle source
# File lib/kondate/itamae_bootstrap.rb, line 27
def include_recipe(recipe)
  @context.include_recipe(recipe)
end
node() click to toggle source
# File lib/kondate/itamae_bootstrap.rb, line 23
def node
  @context.node
end
tweak_logger() click to toggle source
# File lib/kondate/itamae_bootstrap.rb, line 31
def tweak_logger
  hostname = node[:hostname]
  ::Itamae::Logger::Formatter.class_eval do
    define_method(:call) do |severity, datetime, progname, msg|
      log = "%s | %s : %s" % [hostname, "%5s" % severity, msg2str(msg)]

      (colored ? colorize(log, severity) : log) + "\n"
    end
  end
end