class Navo::Berksfile
A global Berksfile
to be shared amongst all threads.
This synchronizes access so we don’t have multiple threads doing the same work resolving cookbooks.
Attributes
config[RW]
path[RW]
Public Class Methods
cache_directory()
click to toggle source
# File lib/navo/berksfile.rb, line 38 def cache_directory Berkshelf::CookbookStore.default_path end
install(logger: nil)
click to toggle source
# File lib/navo/berksfile.rb, line 18 def install(logger: nil) if @installed logger.info 'Berksfile cookbooks already resolved' return end logger.info 'Installing Berksfile...' Berkshelf.logger = Celluloid.logger = logger Berkshelf.ui.mute { Berkshelf::Installer.new(berksfile).run } Celluloid.logger = nil # Ignore annoying shutdown messages @installed = true end
load()
click to toggle source
# File lib/navo/berksfile.rb, line 13 def load require 'berkshelf' # Lazily require so we don't have to load for every command berksfile end
lockfile_path()
click to toggle source
# File lib/navo/berksfile.rb, line 47 def lockfile_path berksfile.lockfile.filepath end
vendor(logger:)
click to toggle source
# File lib/navo/berksfile.rb, line 32 def vendor(logger:) Berkshelf.logger = Celluloid.logger = logger Berkshelf.ui.mute { berksfile.vendor(vendor_directory) } Celluloid.logger = nil # Ignore annoying shutdown messages end
vendor_directory()
click to toggle source
# File lib/navo/berksfile.rb, line 42 def vendor_directory @vendor_directory ||= FileUtils.mkdir_p(File.join(config.repo_root, %w[.navo vendored-cookbooks])).first end
Private Class Methods
berksfile()
click to toggle source
# File lib/navo/berksfile.rb, line 53 def berksfile @berksfile ||= Berkshelf::Berksfile.from_file(@path) end