Sha256: 240f7ad28a220873d802c8f59dc0cea78452060182e0ef881600fc0fc258e508
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
require 'chef/knife' require 'knife-spork/runner' module KnifeSpork class SporkBump < Chef::Knife include KnifeSpork::Runner TYPE_INDEX = { :major => 0, :minor => 1, :patch => 2, :manual => 3 }.freeze banner 'knife spork bump COOKBOOK [major|minor|patch|manual]' def run self.config = Chef::Config.merge!(config) @cookbook = load_cookbook(name_args.first) run_plugins(:before_bump) bump run_plugins(:after_bump) end private def bump old_version = @cookbook.version if bump_type == 3 # manual bump version_array = manual_bump_version.split('.') else # major, minor, or patch bump version_array = old_version.split('.').collect{ |i| i.to_i } version_array[bump_type] += 1 ((bump_type+1)..2).each{ |i| version_array[i] = 0 } # reset all lower version numbers to 0 end new_version = version_array.join('.') metadata_file = "#{@cookbook.root_dir}/metadata.rb" new_contents = File.read(metadata_file).gsub(/version\s+['"][0-9\.]+['"]/, "version \"#{new_version}\"") File.open(metadata_file, 'w'){ |f| f.write(new_contents) } ui.info "Successfully bumped #{@cookbook.name} to v#{new_version}!" end def bump_type TYPE_INDEX[(name_args[1] || 'patch').to_sym] end def manual_bump_version version = name_args.last validate_version!(version) version end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
knife-spork-1.0.2 | lib/chef/knife/spork-bump.rb |
knife-spork-1.0.1 | lib/chef/knife/spork-bump.rb |
knife-spork-1.0.0 | lib/chef/knife/spork-bump.rb |