mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
file2lastrev.rb: all ARGV
* tool/file2lastrev.rb: output for each arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50612 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8009794c09
commit
b8081c7c4c
1 changed files with 42 additions and 27 deletions
|
@ -40,38 +40,53 @@ parser = OptionParser.new {|opts|
|
||||||
}
|
}
|
||||||
parser.parse! rescue abort "#{File.basename(Program)}: #{$!}\n#{parser}"
|
parser.parse! rescue abort "#{File.basename(Program)}: #{$!}\n#{parser}"
|
||||||
|
|
||||||
|
@output =
|
||||||
|
case @output
|
||||||
|
when :changed, nil
|
||||||
|
proc {|last, changed|
|
||||||
|
changed
|
||||||
|
}
|
||||||
|
when :revision_h
|
||||||
|
proc {|last, changed, modified, branch, title|
|
||||||
|
[
|
||||||
|
"#define RUBY_REVISION #{changed || 0}",
|
||||||
|
if branch
|
||||||
|
e = '..'
|
||||||
|
limit = 16
|
||||||
|
name = branch.sub(/\A(.{#{limit-e.size}}).{#{e.size+1},}/o) {$1+e}
|
||||||
|
"#define RUBY_BRANCH_NAME #{name.dump}"
|
||||||
|
end,
|
||||||
|
if title
|
||||||
|
"#define RUBY_LAST_COMMIT_TITLE #{title.dump}"
|
||||||
|
end,
|
||||||
|
].compact
|
||||||
|
}
|
||||||
|
when :doxygen
|
||||||
|
proc {|last, changed|
|
||||||
|
"r#{changed}/r#{last}"
|
||||||
|
}
|
||||||
|
when :modified
|
||||||
|
proc {|last, changed, modified|
|
||||||
|
modified.strftime('%Y-%m-%dT%H:%M:%S%z')
|
||||||
|
}
|
||||||
|
else
|
||||||
|
raise "unknown output format `#{@output}'"
|
||||||
|
end
|
||||||
|
|
||||||
srcdir ||= File.dirname(File.dirname(Program))
|
srcdir ||= File.dirname(File.dirname(Program))
|
||||||
begin
|
begin
|
||||||
vcs = VCS.detect(srcdir)
|
vcs = VCS.detect(srcdir)
|
||||||
rescue VCS::NotFoundError => e
|
rescue VCS::NotFoundError => e
|
||||||
abort "#{File.basename(Program)}: #{e.message}" unless @suppress_not_found
|
abort "#{File.basename(Program)}: #{e.message}" unless @suppress_not_found
|
||||||
else
|
else
|
||||||
|
ok = true
|
||||||
|
(ARGV.empty? ? [nil] : ARGV).each do |arg|
|
||||||
begin
|
begin
|
||||||
last, changed, modified, branch, title = vcs.get_revisions(ARGV.shift)
|
puts @output[*vcs.get_revisions(arg)]
|
||||||
rescue => e
|
rescue => e
|
||||||
abort "#{File.basename(Program)}: #{e.message}" unless @suppress_not_found
|
warn "#{File.basename(Program)}: #{e.message}" unless @suppress_not_found
|
||||||
exit false
|
ok = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
exit ok
|
||||||
case @output
|
|
||||||
when :changed, nil
|
|
||||||
puts changed
|
|
||||||
when :revision_h
|
|
||||||
puts "#define RUBY_REVISION #{changed || 0}"
|
|
||||||
if branch
|
|
||||||
e = '..'
|
|
||||||
limit = 16
|
|
||||||
name = branch.sub(/\A(.{#{limit-e.size}}).{#{e.size+1},}/o) {$1+e}
|
|
||||||
puts "#define RUBY_BRANCH_NAME #{name.dump}"
|
|
||||||
end
|
|
||||||
if title
|
|
||||||
puts "#define RUBY_LAST_COMMIT_TITLE #{title.dump}"
|
|
||||||
end
|
|
||||||
when :doxygen
|
|
||||||
puts "r#{changed}/r#{last}"
|
|
||||||
when :modified
|
|
||||||
puts modified.strftime('%Y-%m-%dT%H:%M:%S%z')
|
|
||||||
else
|
|
||||||
raise "unknown output format `#{@output}'"
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue