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
# File lib/ridoku/cook.rb, line 93 def print_cook_help $stderr.puts <<-EOF Command: cook List/Modify the current app's associated domains. cook:run run a specific or set of 'cookbook::recipe' cook:update update the specified instance 'cookboooks' EOF end
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