Skip to content

Commit 8a48a65

Browse files
committed
Update new-version script to handle truffleruby+graalvm automatically
1 parent 32c0569 commit 8a48a65

File tree

1 file changed

+38
-30
lines changed

1 file changed

+38
-30
lines changed

new-version.rb

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
engine, version = ARGV.fetch(0).split('-', 2)
1+
engine_input, version = ARGV.fetch(0).split('-', 2)
22

3-
MATCH = case engine
3+
MATCH = case engine_input
44
when 'ruby', 'jruby'
55
/^\d+\.\d+\./
66
when 'truffleruby'
@@ -9,41 +9,49 @@
99

1010
raise unless version[MATCH]
1111

12-
# Update ruby-builder-versions.json
13-
file = "#{__dir__}/ruby-builder-versions.json"
14-
lines = File.readlines(file, chomp: true)
12+
engines = [engine_input]
13+
engines << 'truffleruby+graalvm' if engine_input == 'truffleruby'
1514

16-
from = lines.index { |line| line =~ /"#{engine}": \[/ }
17-
to = from
18-
to += 1 until lines[to].include?(']')
15+
engines.each do |engine|
16+
puts engine
1917

20-
from += 1 # [
21-
to -= 2 # head, ]
18+
# Update ruby-builder-versions.json
19+
file = "#{__dir__}/ruby-builder-versions.json"
20+
lines = File.readlines(file, chomp: true)
2221

23-
puts lines[from..to]
22+
from = lines.index { |line| line.include?(%{"#{engine}": [}) }
23+
raise "Could not find start of #{engine}" unless from
24+
to = from
25+
to += 1 until lines[to].include?(']')
2426

25-
release_line = lines[from..to].find { |line|
26-
v = line[/"([^"]+)"/, 1] and v[MATCH] == version[MATCH]
27-
}
27+
from += 1 # [
28+
to -= 2 # head, ]
2829

29-
if release_line
30-
append = " #{version.inspect},"
31-
release_line << append unless release_line.end_with?(append)
32-
else
33-
lines.insert to+1, " #{version.inspect},"
34-
end
30+
puts lines[from..to]
3531

36-
File.write(file, lines.join("\n") + "\n")
32+
release_line = lines[from..to].find { |line|
33+
v = line[/"([^"]+)"/, 1] and v[MATCH] == version[MATCH]
34+
}
3735

38-
# Update README.md
39-
file = "#{__dir__}/README.md"
40-
lines = File.readlines(file)
41-
engine_line = lines.find { |line| line.start_with?("| `#{engine}`") }
42-
engine_line.sub!(/(.+ (?:-|until)) (\d+(?:\.\d+)+)/) do
43-
if Gem::Version.new(version) > Gem::Version.new($2)
44-
"#{$1} #{version}"
36+
if release_line
37+
append = " #{version.inspect},"
38+
release_line << append unless release_line.end_with?(append)
4539
else
46-
$&
40+
lines.insert to+1, " #{version.inspect},"
41+
end
42+
43+
File.write(file, lines.join("\n") + "\n")
44+
45+
# Update README.md
46+
file = "#{__dir__}/README.md"
47+
lines = File.readlines(file)
48+
engine_line = lines.find { |line| line.start_with?("| `#{engine}`") }
49+
engine_line.sub!(/(.+ (?:-|until)) (\d+(?:\.\d+)+)/) do
50+
if Gem::Version.new(version) > Gem::Version.new($2)
51+
"#{$1} #{version}"
52+
else
53+
$&
54+
end
4755
end
56+
File.write(file, lines.join)
4857
end
49-
File.write(file, lines.join)

0 commit comments

Comments
 (0)