Skip to content

Commit d60780f

Browse files
committed
Simplify new-versions.rb
1 parent 8aa012b commit d60780f

File tree

1 file changed

+34
-40
lines changed

1 file changed

+34
-40
lines changed

new-versions.rb

+34-40
Original file line numberDiff line numberDiff line change
@@ -3,66 +3,60 @@
33

44
versions.each do |engine_version|
55
puts engine_version
6-
engine_input, version = engine_version.split('-', 2)
6+
engine, version = engine_version.split('-', 2)
7+
p [engine, version]
78

8-
if engine_input == 'windows'
9+
if engine == 'windows'
910
require_relative 'generate-windows-versions'
1011
exit
1112
end
1213

13-
match = case engine_input
14+
match = case engine
1415
when 'ruby', 'jruby'
1516
/^\d+\.\d+\./
16-
when 'truffleruby'
17+
when 'truffleruby', 'truffleruby+graalvm'
1718
/^\d+\./
1819
end
1920

2021
raise engine_version unless version[match]
2122

22-
engines = [engine_input]
23-
engines << 'truffleruby+graalvm' if engine_input == 'truffleruby'
23+
# Update ruby-builder-versions.json
24+
file = "#{__dir__}/ruby-builder-versions.json"
25+
lines = File.readlines(file, chomp: true)
2426

25-
engines.each do |engine|
26-
puts engine
27+
from = lines.index { |line| line.include?(%{"#{engine}": [}) }
28+
raise "Could not find start of #{engine}" unless from
29+
to = from
30+
to += 1 until lines[to].include?(']')
2731

28-
# Update ruby-builder-versions.json
29-
file = "#{__dir__}/ruby-builder-versions.json"
30-
lines = File.readlines(file, chomp: true)
32+
from += 1 # [
33+
to -= 2 # head, ]
3134

32-
from = lines.index { |line| line.include?(%{"#{engine}": [}) }
33-
raise "Could not find start of #{engine}" unless from
34-
to = from
35-
to += 1 until lines[to].include?(']')
35+
puts lines[from..to]
3636

37-
from += 1 # [
38-
to -= 2 # head, ]
37+
release_line = lines[from..to].find { |line|
38+
v = line[/"([^"]+)"/, 1] and v[match] == version[match]
39+
}
3940

40-
puts lines[from..to]
41+
if release_line
42+
append = " #{version.inspect},"
43+
release_line << append unless release_line.end_with?(append)
44+
else
45+
lines.insert to+1, " #{version.inspect},"
46+
end
4147

42-
release_line = lines[from..to].find { |line|
43-
v = line[/"([^"]+)"/, 1] and v[match] == version[match]
44-
}
48+
File.write(file, lines.join("\n") + "\n")
4549

46-
if release_line
47-
append = " #{version.inspect},"
48-
release_line << append unless release_line.end_with?(append)
50+
# Update README.md
51+
file = "#{__dir__}/README.md"
52+
lines = File.readlines(file)
53+
engine_line = lines.find { |line| line.start_with?("| `#{engine}`") }
54+
engine_line.sub!(/(.+ (?:-|until)) (\d+(?:\.\d+)+(?:-\w+)?)/) do
55+
if Gem::Version.new(version) > Gem::Version.new($2)
56+
"#{$1} #{version}"
4957
else
50-
lines.insert to+1, " #{version.inspect},"
51-
end
52-
53-
File.write(file, lines.join("\n") + "\n")
54-
55-
# Update README.md
56-
file = "#{__dir__}/README.md"
57-
lines = File.readlines(file)
58-
engine_line = lines.find { |line| line.start_with?("| `#{engine}`") }
59-
engine_line.sub!(/(.+ (?:-|until)) (\d+(?:\.\d+)+(?:-\w+)?)/) do
60-
if Gem::Version.new(version) > Gem::Version.new($2)
61-
"#{$1} #{version}"
62-
else
63-
$&
64-
end
58+
$&
6559
end
66-
File.write(file, lines.join)
6760
end
61+
File.write(file, lines.join)
6862
end

0 commit comments

Comments
 (0)