lib/berks2env.rb in berks2env-0.0.3 vs lib/berks2env.rb in berks2env-0.1.1

- old
+ new

@@ -9,42 +9,48 @@ attr_reader :branch, :berkslockfile def initialize(branch, berkslockfile) @branch = branch @berkslockfile = berkslockfile + @environment = Chef::Environment.new end def run - environment = Chef::Environment.new - environment.name(sanitize) + 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.cookbook_versions(locks) - environment.override_attributes({ :server_env => { :version => { :real => @branch, :virt => @branch }}}) - envfile = File.open("#{@branch}.json", 'w') - envfile.write(environment.to_json) + @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 }}}) + @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.write(@environment.to_json) envfile.close end end - def sanitize - if @branch =~ /\d+\.\d+\.\d+/ - @branch.gsub('.','_') + + def sanitize_branch + if self.branch =~ /\d+\.\d+\.\d+/ + self.branch.gsub('.','_') else - @branch.gsub(/[\-;:,.\/\\']/,'_') + self.branch.gsub(/[\-;:,.\/\\']/,'_') end end end end