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