Support tool/merger.rb up under Git repository

updating indentation (and slightly changing styles) for areas already
supporting Git.
This commit is contained in:
Takashi Kokubun 2019-04-28 22:36:23 +09:00
parent d906dd87b0
commit 3bc810334c
No known key found for this signature in database
GPG Key ID: 6FFC433B12EE23DD

View File

@ -2,7 +2,7 @@
# -*- ruby -*- # -*- ruby -*-
exec "${RUBY-ruby}" "-x" "$0" "$@" && [ ] if false exec "${RUBY-ruby}" "-x" "$0" "$@" && [ ] if false
#!ruby #!ruby
# This needs ruby 1.9, Subversion and Git. # This needs ruby 2.0, Subversion and Git.
# As a Ruby committer, run this in an SVN repository # As a Ruby committer, run this in an SVN repository
# to commit a change. # to commit a change.
@ -47,58 +47,61 @@ module Merger
end end
end end
def interactive str, editfile = nil def interactive(str, editfile = nil)
loop do loop do
yield yield
STDERR.puts "\e[1;33m#{str} ([y]es|[a]bort|[r]etry#{'|[e]dit' if editfile})\e[0m" STDERR.puts "\e[1;33m#{str} ([y]es|[a]bort|[r]etry#{'|[e]dit' if editfile})\e[0m"
case STDIN.gets case STDIN.gets
when /\Aa/i then exit when /\Aa/i then exit
when /\Ar/i then redo when /\Ar/i then redo
when /\Ay/i then break when /\Ay/i then break
when /\Ae/i then system(ENV["EDITOR"], editfile) when /\Ae/i then system(ENV['EDITOR'], editfile)
else exit else exit
end
end
end end
end
end
def version_up(inc=nil) def version_up(teeny: false)
d = Time.now now = Time.now
d = d.localtime(9*60*60) # server is Japan Standard Time +09:00 now = now.localtime(9*60*60) # server is Japan Standard Time +09:00
system(*%w'svn revert version.h') if svn_mode?
v, pl = version system('svn', 'revert', 'version.h')
else
system('git', 'checkout', 'HEAD', 'version.h')
end
v, pl = version
if inc == :teeny if teeny
v[2].succ! v[2].succ!
end end
# patchlevel if pl != '-1' # trunk does not have patchlevel
if pl != "-1" pl.succ!
pl.succ! end
end
str = open 'version.h', 'rb' do |f| f.read end str = open('version.h', 'rb', &:read)
ruby_release_date = str[/RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR/] || d.strftime('"%Y-%m-%d"') ruby_release_date = str[/RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR/] || now.strftime('"%Y-%m-%d"')
[%W[RUBY_VERSION "#{v.join '.'}"], [%W[RUBY_VERSION "#{v.join('.')}"],
%W[RUBY_VERSION_CODE #{v.join ''}], %W[RUBY_VERSION_CODE #{v.join('')}],
%W[RUBY_VERSION_MAJOR #{v[0]}], %W[RUBY_VERSION_MAJOR #{v[0]}],
%W[RUBY_VERSION_MINOR #{v[1]}], %W[RUBY_VERSION_MINOR #{v[1]}],
%W[RUBY_VERSION_TEENY #{v[2]}], %W[RUBY_VERSION_TEENY #{v[2]}],
%W[RUBY_RELEASE_DATE #{ruby_release_date}], %W[RUBY_RELEASE_DATE #{ruby_release_date}],
%W[RUBY_RELEASE_CODE #{d.strftime '%Y%m%d'}], %W[RUBY_RELEASE_CODE #{now.strftime('%Y%m%d')}],
%W[RUBY_PATCHLEVEL #{pl}], %W[RUBY_PATCHLEVEL #{pl}],
%W[RUBY_RELEASE_YEAR #{d.year}], %W[RUBY_RELEASE_YEAR #{now.year}],
%W[RUBY_RELEASE_MONTH #{d.month}], %W[RUBY_RELEASE_MONTH #{now.month}],
%W[RUBY_RELEASE_DAY #{d.day}], %W[RUBY_RELEASE_DAY #{now.day}],
].each do |(k, i)| ].each do |(k, i)|
str.sub!(/^(#define\s+#{k}\s+).*$/, "\\1#{i}") str.sub!(/^(#define\s+#{k}\s+).*$/, "\\1#{i}")
end end
str.sub!(/\s+\z/m, '') str.sub!(/\s+\z/m, '')
fn = sprintf 'version.h.tmp.%032b', rand(1 << 31) fn = sprintf('version.h.tmp.%032b', rand(1 << 31))
File.rename 'version.h', fn File.rename('version.h', fn)
open 'version.h', 'wb' do |f| open('version.h', 'wb') do |f|
f.puts str f.puts(str)
end end
File.unlink fn File.unlink(fn)
end end
def tag intv_p = false, relname=nil def tag intv_p = false, relname=nil
# relname: # relname:
@ -170,8 +173,21 @@ def remove_tag intv_p = false, relname
system(*%w'svn rm -m', "remove tag #{tagname}", tag_url) system(*%w'svn rm -m', "remove tag #{tagname}", tag_url)
end end
def diff(file)
if svn_mode?
system('svn', 'diff', file)
else
system('git', 'diff', file)
end
end
private private
def svn_mode?
return @svn_mode if defined?(@svn_mode)
@svn_mode = system("svn info > /dev/null 2>&1")
end
# Prints the version of Ruby found in version.h # Prints the version of Ruby found in version.h
def version def version
v = p = nil v = p = nil
@ -206,11 +222,11 @@ end # module Merger
case ARGV[0] case ARGV[0]
when "teenyup" when "teenyup"
Merger.version_up(:teeny) Merger.version_up(teeny: true)
system 'svn diff version.h' Merger.diff('version.h')
when "up", /\A(ver|version|rev|revision|lv|level|patch\s*level)\s*up/ when "up", /\A(ver|version|rev|revision|lv|level|patch\s*level)\s*up\z/
Merger.version_up Merger.version_up
system 'svn diff version.h' Merger.diff('version.h')
when "tag" when "tag"
Merger.tag :interactive, ARGV[1] Merger.tag :interactive, ARGV[1]
when /\A(?:remove|rm|del)_?tag\z/ when /\A(?:remove|rm|del)_?tag\z/