class Spiceweasel::Berksfile
load and parse berksfile
Attributes
cookbook_list[R]
create[R]
delete[R]
Public Class Methods
new(berkshelf = nil)
click to toggle source
# File lib/spiceweasel/berksfile.rb, line 29 def initialize(berkshelf = nil) @create = [] @delete = [] @cookbook_list = {} # only load berkshelf if we are going to use it require 'berkshelf' berks_options = [] case berkshelf when String path = berkshelf when Hash path = berkshelf['path'] berks_options << berkshelf['options'] if berkshelf['options'] end path ||= './Berksfile' berks_options << "-b #{path}" berks_options = berks_options.join(' ') opts = Thor::Options.split(berks_options.split(' ')).last resolve_opts = Thor::Options.new(Berkshelf::Cli.tasks['upload'].options).parse(opts) berks = Berkshelf::Berksfile.from_file(path) create_command("berks upload #{berks_options}") Berkshelf.ui.mute do Spiceweasel::Log.debug("berkshelf resolving dependencies: #{resolve_opts}") ckbks = berks.install ckbks.each do |cb| @cookbook_list[cb.cookbook_name] = cb.version delete_command("knife cookbook#{Spiceweasel::Config[:knife_options]} delete #{cb.cookbook_name} #{cb.version} -a -y") end end end