#!/usr/bin/ruby.ruby4.0 

require 'git-version-bump'

if ARGV[0].nil? or
   ARGV[0].empty? or
   ARGV[0] == '-h' or
   ARGV[0] == '--help'
	$stderr.puts <<-EOF.gsub(/^\t\t/, '')
		Usage: git version-bump [-n|--notes] <major|minor|patch|show>

		'major': x.y.z -> x+1.0.0
		'minor': x.y.z -> x.y+1.0
		'patch': x.y.z -> x.y.z+1

		'show': Display the current GVB version

		--release: Prompt for "release notes" to add to the release tag
	EOF
end

release_notes = ARGV.delete('-n') || ARGV.delete('--notes')

if ARGV[0].nil? or ARGV[0].empty?
	exit 1
elsif ARGV[0] == '-h' or ARGV[0] == '--help'
	exit 0
end

case ARGV[0].downcase
	when /^maj?o?r?$/
		GVB.tag_version "#{GVB.major_version(true) + 1}.0.0", release_notes
	when /^min?o?r?$/
		GVB.tag_version "#{GVB.major_version(true)}.#{GVB.minor_version(true)+1}.0", release_notes
	when /^pa?t?c?h?$/
		GVB.tag_version "#{GVB.major_version(true)}.#{GVB.minor_version(true)}.#{GVB.patch_version(true)+1}", release_notes
	when /^sh?o?w?$/
		puts GVB.version(true)
		exit 0
	else
		$stderr.puts "Unknown argument: #{ARGV[0]}.  Try --help."
		exit 1
end

puts "Version is now #{GVB.version(true)}."
