mirror of
https://github.com/ruby/ruby.git
synced 2025-09-16 09:04:05 +02:00

* Issue numbers are path components but not fragments * Align justification width to Feature lines
26 lines
860 B
Ruby
26 lines
860 B
Ruby
# Usage: ruby tool/update-NEWS-refs.rb
|
|
|
|
orig_src = File.read(File.join(__dir__, "../NEWS.md"))
|
|
lines = orig_src.lines(chomp: true)
|
|
|
|
links = {}
|
|
while lines.last =~ %r{\A\[(?:Feature|Bug) #(\d+)\]:\s+https://bugs\.ruby-lang\.org/issues/\1\z}
|
|
links[$1] = lines.pop
|
|
end
|
|
|
|
if links.empty? || lines.last != ""
|
|
raise "NEWS.md must end with a sequence of links to bugs.ruby-lang.org like \"[Feature #XXXXX]: https://bugs.ruby-lang.org/issues/XXXXX\""
|
|
end
|
|
|
|
new_src = lines.join("\n").gsub(/\[?\[(Feature|Bug)\s+#(\d+)\]\]?/) do
|
|
links[$2] ||= "[#$1 ##$2]: ".ljust(18) + "https://bugs.ruby-lang.org/issues/#$2"
|
|
"[[#$1 ##$2]]"
|
|
end.chomp + "\n\n" + links.keys.sort.map {|k| links[k] }.join("\n") + "\n"
|
|
|
|
if orig_src != new_src
|
|
print "Update NEWS.md? [y/N]"
|
|
$stdout.flush
|
|
if gets.chomp == "y"
|
|
File.write(File.join(__dir__, "../NEWS.md"), new_src)
|
|
end
|
|
end
|