Method: ReleasedCookbook#package

Defined in:
lib/mofa/released_cookbook.rb

#packageObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/mofa/released_cookbook.rb', line 42

def package
  tar_verbose = (Mofa::CLI::option_debug) ? 'v' : ''
  mkdir_p @pkg_dir
  say "Downloading released cookbook from: #{cookbooks_url} to #{pkg_dir}/#{pkg_name}..."
  File.open("#{pkg_dir}/#{pkg_name}", "wb") do |saved_file|
    # the following "open" is provided by open-uri
    open(cookbooks_url, "rb") do |read_file|
      saved_file.write(read_file.read)
    end
  end
  mkdir_p "#{pkg_dir}/tmp"
  run "tar x#{tar_verbose}fz #{pkg_dir}/#{pkg_name} -C #{pkg_dir}/tmp/"

  # copy out data_bags if exists
  if File.directory?("#{pkg_dir}/tmp/cookbooks/#{name}/data_bags")
    FileUtils.cp_r "#{pkg_dir}/tmp/cookbooks/#{name}/data_bags", pkg_dir
  end

  # copy out recipes
  if File.directory?("#{pkg_dir}/tmp/cookbooks/#{name}/recipes")
    FileUtils.cp_r "#{pkg_dir}/tmp/cookbooks/#{name}/recipes", pkg_dir
  end

  run "cd #{pkg_dir}/tmp/;tar c#{tar_verbose}fz #{pkg_dir}/#{pkg_name}.new ."
  run "rm #{pkg_dir}/#{pkg_name}"
  run "mv #{pkg_dir}/#{pkg_name}.new #{pkg_dir}/#{pkg_name}"
  run "rm -rf #{pkg_dir}/tmp/"
end