40 lines
851 B
Ruby
40 lines
851 B
Ruby
require_relative './base'
|
|
|
|
module Release
|
|
|
|
class Patch < Release::Base
|
|
def valid?
|
|
argv.size > 1
|
|
end
|
|
|
|
def help
|
|
"release patch version"
|
|
end
|
|
|
|
def execute
|
|
subcommand, version, *extras = *argv
|
|
|
|
error "invalid version: #{version}" unless version =~ /\d+\.\d+\.\d+/
|
|
error "unknown version: #{git_local_list_tags.join(' ')}" unless git_local_list_tags.include? "v#{version}"
|
|
error "invalid base branch: #{current_branch}" unless standard_branches.include? current_branch
|
|
|
|
patch_branch = patch(version)
|
|
|
|
git_pull current_branch
|
|
|
|
git_local_branch_create patch_branch, "v#{version}"
|
|
|
|
git_push patch_branch
|
|
end
|
|
|
|
private
|
|
|
|
def patch (version)
|
|
numbers = version.split('.').map { |x| x.to_i }
|
|
"#{numbers[0]}.#{numbers[1]}.#{numbers[2]+1}"
|
|
end
|
|
|
|
end
|
|
|
|
end
|