Sha256: e54e09eb748bc7733fa7ba338188afcaec4748b1edf00a6bb8187a7b959964e2
Contents?: true
Size: 1.57 KB
Versions: 2
Compression:
Stored size: 1.57 KB
Contents
require 'berks2env/version' require 'berkshelf' require 'chef/environment' # This class takes and dumps out environment json files class Convert attr_reader :branch, :berkslockfile def initialize(branch, berkslockfile) @branch = branch @berkslockfile = berkslockfile @environment = Chef::Environment.new end def run clean_branch = self.sanitize_branch @environment.name(clean_branch) berksfile = Berkshelf::Lockfile.from_file(@berkslockfile) locks = berksfile.graph.locks.inject({}) do |hash, (name, dependency)| hash[name] = "= #{dependency.locked_version.to_s}" hash end @environment.cookbook_versions(locks) @environment.override_attributes({ :server_env => { :version => { :real => @branch, :virt => @branch }}}) envfile = File.open("#{clean_branch}.json", 'w') envfile.write(@environment.to_json) envfile.close self.create_latest end def create_latest if @branch.match(/\d+\.\d+\.\d+\z/) xver = @branch.split('.') xver = "#{xver[0]}.#{xver[1]}.LATEST" # Create the major.minor.X environment to go with the major.minor.patch environment @environment.name(xver.gsub('.', '_')) @environment.override_attributes({ :server_env => { :version => { :real => @branch, :virt => xver }}}) envfile = File.open("#{xver.gsub('.', '_')}.json", 'w') envfile.write(@environment.to_json) envfile.close end end def sanitize_branch if self.branch =~ /\d+\.\d+\.\d+/ self.branch.gsub('.','_') else self.branch.gsub(/[\-;:,.\/\\']/,'_') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
berks2env-0.3.1 | lib/berks2env.rb |
berks2env-0.2.0 | lib/berks2env.rb |