Support tool/merger.rb up
under Git repository
updating indentation (and slightly changing styles) for areas already supporting Git.
This commit is contained in:
parent
d906dd87b0
commit
3bc810334c
122
tool/merger.rb
122
tool/merger.rb
@ -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/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user