class Ridoku::Cook

Protected Class Methods

cook_recipe(recipes, custom_json = nil) click to toggle source
# File lib/ridoku/cook.rb, line 55
def cook_recipe(recipes, custom_json = nil)
  cook_recipe_on_layers(recipes, nil, custom_json)
end
cook_recipe_on_layers(recipes, layers, custom_json = nil) click to toggle source
# File lib/ridoku/cook.rb, line 59
def cook_recipe_on_layers(recipes, layers, custom_json = nil) 
  Base.fetch_app()

  recipes = [recipes] unless recipes.is_a?(Array)

  unless valid_recipe_format?(recipes)
    $stderr.puts 'Invalid recipes provided.'
    print_cook_help
    exit 1
  end

  instance_ids = Base.extract_instance_ids(layers)

  if instance_ids.length == 0
    $stderr.puts 'No valid instances available.'
    exit 1
  end

  $stdout.puts "Running recipes:"
  recipes.each do |arg|
    $stdout.puts "  #{$stdout.colorize(arg, :green)}"
  end

  command = Base.execute_recipes(Base.app[:app_id], instance_ids,
    Base.config[:comment], recipes, custom_json)

  Base.run_command(command)
end
valid_recipe_format?(recipes) click to toggle source
# File lib/ridoku/cook.rb, line 44
def valid_recipe_format?(recipes)
  return false if recipes.length == 0

  recipe = %r(^[a-zA-Z0-9_\-]+(::[a-zA-Z0-9_\-]+){0,1}$)
  recipes.each do |cr|
    return false unless cr.match(recipe)
  end

  true
end

Public Instance Methods

run() click to toggle source
# File lib/ridoku/cook.rb, line 13
def run      
  command = Base.config[:command]
  sub_command = (command.length > 0 && command[1]) || nil

  Base.fetch_stack

  case sub_command
  # when 'list', nil
  #   list
  when 'update'
    update
  when 'run'
    cook
  else
    print_cook_help
  end
end

Protected Instance Methods

cook() click to toggle source
# File lib/ridoku/cook.rb, line 89
def cook
  Ridoku::Cook.cook_recipe(ARGV)
end
list() click to toggle source
# File lib/ridoku/cook.rb, line 33
def list
  update unless File.exists?(cookbook_path)
end
print_cook_help() click to toggle source
update() click to toggle source
# File lib/ridoku/cook.rb, line 37
def update
  $stdout.puts "Updating custom cookbooks..."

  Base.run_command(Base.update_cookbooks(Base.extract_instance_ids))
end