Last active
May 25, 2016 15:27
-
-
Save dpmcnevin/a6c331fd44a075420da7c80b292a04d0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
require 'git' | |
require 'logger' | |
g = Git.open(Dir.pwd) | |
if ARGV.include?("-h") || ARGV.include?("--help") | |
puts <<-EOF | |
USAGE: git bump [options] | |
-h Print out help | |
-v Verbose output | |
--major Bump major version | |
--minor Bump minor version | |
--dry Don't create a new tag, just show what it would be | |
EOF | |
exit(0) | |
end | |
verbose = ARGV.include?("-v") || ARGV.include?("--verbose") | |
separator = ARGV.include?("--google") || ARGV.include?("-g") || g.config("core.gaeversion").eql?("true") ? "-" : "." | |
current_version = `git describe`.strip | |
@major, @minor, @patch = current_version.split(/[\.-]/) | |
@major ||= 0; @minor ||= 0; @patch ||= 0 | |
if ARGV.include?("--major"); | |
@major = @major.to_i.next; @minor = 0; @patch = 0 | |
elsif ARGV.include?("--minor") | |
@minor = @minor.to_i.next; @patch = 0 | |
else | |
@patch = @patch.to_i.next | |
end | |
new_version = [@major, @minor, @patch].join(separator) | |
puts "CURRENT VERSION: #{current_version}" if verbose | |
puts "NEW VERSION: #{new_version}" | |
unless ARGV.include?("--dry") | |
_command = "git tag -m '#{new_version}' #{new_version}" | |
puts "--> #{_command}" if verbose | |
system(_command) | |
_command = "git push --tags" | |
puts "--> #{_command}" if verbose | |
system(_command) | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment