Add script to automate version bumping

This commit is contained in:
Hugues Delorme 2016-06-29 17:56:17 +02:00
parent d2ba019733
commit 9d88a7464d

50
bump-version.rb Normal file
View File

@ -0,0 +1,50 @@
#!/usr/bin/ruby
if not ARGV.empty? then
version_str = ARGV.first
version_array = ARGV.first.split('.')
if version_array.size == 3 then
major = version_array[0]
minor = version_array[1]
patch = version_array[2]
puts "Major: #{major}"
puts "Minor: #{minor}"
puts "Patch: #{patch}"
script_dir_name = File.expand_path(File.dirname(__FILE__))
# CMakeLists.txt
path_CMakeLists_txt = "#{script_dir_name}/CMakeLists.txt"
CMakeLists_txt = File.open(path_CMakeLists_txt, "r").read
CMakeLists_txt.sub!(/(set\(GMIO_VERSION_MAJOR\s+)\d+/, "\\1#{major}")
CMakeLists_txt.sub!(/(set\(GMIO_VERSION_MINOR\s+)\d+/, "\\1#{minor}")
CMakeLists_txt.sub!(/(set\(GMIO_VERSION_PATCH\s+)\d+/, "\\1#{patch}")
File.open(path_CMakeLists_txt, "w").write(CMakeLists_txt)
puts "Bumped #{path_CMakeLists_txt}"
# README.md
path_README_md = "#{script_dir_name}/README.md"
README_md = File.open(path_README_md, "r").read
README_md.sub!(
/(img\.shields\.io\/badge\/version\-v)\d+\.\d+\.\d+/,
"\\1#{version_str}")
README_md.gsub!(
/(www\.fougue\.pro\/docs\/gmio\/)\d+\.\d+/,
"\\1#{major}.#{minor}")
File.open(path_README_md, "w").write(README_md)
puts "Bumped #{path_README_md}"
# appveyor.yml
path_appveyor_yml = "#{script_dir_name}/appveyor.yml"
appveyor_yml = File.open(path_appveyor_yml, "r").read
appveyor_yml.sub!(
/(version:\s+)\d+\.\d+(_build)/,
"\\1#{major}.#{minor}\\2")
File.open(path_appveyor_yml, "w").write(appveyor_yml)
puts "Bumped #{path_appveyor_yml}"
else
puts "Error: wrong version format(maj.min.patch)"
end
else
puts "Error: no version argument"
end