Sha256: e61529a38c7647725a624c69ab29fc5f283ebc8d508339e4bce894ee9bf26a02
Contents?: true
Size: 1.36 KB
Versions: 6
Compression:
Stored size: 1.36 KB
Contents
module Berkshelf module Vagrant module Action # @author Jamie Winsor <jamie@vialstudios.com> # @author Andrew Garson <andrew.garson@gmail.com> class Install attr_reader :config attr_reader :shelf attr_reader :berksfile def initialize(app, env) @app = app @shelf = Berkshelf::Vagrant.shelf_for(env) @config = env[:global_config].berkshelf Berkshelf.config_path = @config.config_path Berkshelf.load_config @berksfile = Berksfile.from_file(@config.berksfile_path) end def call(env) if Berkshelf::Vagrant.chef_solo?(env[:global_config]) configure_cookbooks_path(env) install(env) end @app.call(env) end private def install(env) Berkshelf.formatter.msg "installing cookbooks..." opts = { path: self.shelf }.merge(self.config.to_hash).symbolize_keys! berksfile.install(opts) end def configure_cookbooks_path(env) Berkshelf::Vagrant.provisioners(:chef_solo, env[:global_config]).each do |provisioner| provisioner.config.cookbooks_path.unshift(self.shelf) end end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems