diff --git a/lib/release/commander.rb b/lib/release/commander.rb index 34b8ef2..66282e1 100644 --- a/lib/release/commander.rb +++ b/lib/release/commander.rb @@ -5,6 +5,7 @@ module Release class Commander COMMANDS = [ + :finish, :help, :init, :major, diff --git a/lib/release/finish.rb b/lib/release/finish.rb new file mode 100644 index 0000000..6739411 --- /dev/null +++ b/lib/release/finish.rb @@ -0,0 +1,39 @@ +require_relative './base' + +module Release + + class Finish < Release::Base + def valid? + argv.size == 1 + end + + def help + "release finish" + end + + def execute + release_branch = current_branch + + error "invalid release branch: #{release_branch}" unless release_branch =~ /\d+\.\d+\.\d+/ + + git_pull release_branch + + git_local_tag release_branch + + git_push release_branch + + git_push_tags + + git_checkout "master" + + git_local_branch_delete release_branch + + if remote_branch(release_branch) != "" + git_remote_branch_delete release_branch + end + + git_prune + end + end + +end