module PoiseBoiler::Helpers::Kitchen::ProvisionerHelpers
Helper methods for the two TK provisioners.
Private Instance Methods
convert_halite_cookbooks(dest)
click to toggle source
# File lib/poise_boiler/helpers/kitchen/provisioner_helpers.rb, line 35 def convert_halite_cookbooks(dest) @real_cookbook_deps = {} gems_to_convert = {'poise-profiler' => Halite::Gem.new('poise-profiler')} gems_to_check = [poise_helper_instance.cookbook] # Only look at dev dependcies of the top-level spec, which happens to # be the first since this is a breadth-first analysis. Kind of hacky # but less hacky than refactoring this whole loop. first = true until gems_to_check.empty? check = gems_to_check.pop # Already in the list, skip expansion. next if gems_to_convert.include?(check.name) # Not a cookbook, don't expand. next unless check.is_halite_cookbook? gems_to_convert[check.name] = check # Expand dependencies and check each of those. check.cookbook_dependencies(development: first).each do |dep| dep_cook = dep.cookbook if dep_cook gems_to_check << dep_cook else @real_cookbook_deps[dep.name] = dep end end first = false end # Convert all the things! tmpbooks_dir = File.join(dest, 'cookbooks') FileUtils.mkdir_p(tmpbooks_dir) gems_to_convert.each do |name, gem_data| Halite.convert(gem_data, File.join(tmpbooks_dir, gem_data.cookbook_name)) end end
copy_test_cookbook(dest)
click to toggle source
# File lib/poise_boiler/helpers/kitchen/provisioner_helpers.rb, line 69 def copy_test_cookbook(dest) fixture_base = File.join(config[:kitchen_root], 'test', 'cookbook') return unless File.exist?(File.join(fixture_base, 'metadata.rb')) tmp_base = File.join(dest, 'cookbooks', "#{poise_helper_instance.cookbook_name}_test") FileUtils.mkdir_p(tmp_base) FileUtils.cp_r(File.join(fixture_base, "."), tmp_base) end
copy_test_cookbooks(dest)
click to toggle source
# File lib/poise_boiler/helpers/kitchen/provisioner_helpers.rb, line 77 def copy_test_cookbooks(dest) fixtures_base = File.join(config[:kitchen_root], 'test', 'cookbooks') return unless File.exist?(fixtures_base) tmp_base = File.join(dest, 'cookbooks') FileUtils.mkdir_p(tmp_base) FileUtils.cp_r(File.join(fixtures_base, "."), tmp_base) end
poise_helper_instance()
click to toggle source
# File lib/poise_boiler/helpers/kitchen/provisioner_helpers.rb, line 29 def poise_helper_instance PoiseBoiler::Kitchen.instance || begin raise 'Global poise-boiler kitchen instance not set' end end