Skip to content

Commit

Permalink
Add ability to use lockfile directly
Browse files Browse the repository at this point in the history
It gives good possibility to update environment from CI server.
Method load_berksfile_lock skips all validations and uses lock file
directly. For example CI server always requires to do `berks install`
because, some of cookbooks might be not present on CI server.
Also this works much faster.
  • Loading branch information
Yauhen Artsiukhou committed Sep 15, 2015
1 parent 90cdd11 commit 21491f8
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions lib/chef-berksfile-env.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,17 @@
class Chef
class Environment

# @param path path to lock file
# @raise Berkshelf::LockfileNotFound exception
def load_berksfile_lock(path=nil)
lockfile = ::Berkshelf::Lockfile.from_file(path)
raise ::Berkshelf::LockfileNotFound, "Berks lock file is not present: #{path}" unless lockfile.present?

lockfile.locks.each_pair do |_, dependency|
cookbook dependency.name, "= #{dependency.locked_version.to_s}"
end
end

def load_berksfile(path=nil)
raise "You must define the environment name before doing load_berksfile" if path.nil? && name.empty?

Expand Down

0 comments on commit 21491f8

Please sign in to comment.