class ChefApply::Action::GenerateCookbookFromRecipe

Public Instance Methods

generate() click to toggle source
# File lib/chef_apply/action/generate_temp_cookbook.rb, line 54
def generate
  recipe_specifier = config.delete :recipe_spec
  repo_paths = config.delete :cookbook_repo_paths
  ChefApply::Log.debug("Beginning to look for recipe specified as #{recipe_specifier}")
  if File.file?(recipe_specifier)
    ChefApply::Log.debug("#{recipe_specifier} is a valid path to a recipe")
    recipe_path = recipe_specifier
  else
    require_relative "generate_temp_cookbook/recipe_lookup"
    rl = RecipeLookup.new(repo_paths)
    cookbook_path_or_name, optional_recipe_name = rl.split(recipe_specifier)
    cookbook = rl.load_cookbook(cookbook_path_or_name)
    recipe_path = rl.find_recipe(cookbook, optional_recipe_name)
  end
  generated_cookbook.from_existing_recipe(recipe_path)
end