|
1 | | -engine, version = ARGV.fetch(0).split('-', 2) |
| 1 | +engine_input, version = ARGV.fetch(0).split('-', 2) |
2 | 2 |
|
3 | | -MATCH = case engine |
| 3 | +MATCH = case engine_input |
4 | 4 | when 'ruby', 'jruby' |
5 | 5 | /^\d+\.\d+\./ |
6 | 6 | when 'truffleruby' |
|
9 | 9 |
|
10 | 10 | raise unless version[MATCH] |
11 | 11 |
|
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' |
15 | 14 |
|
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 |
19 | 17 |
|
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) |
22 | 21 |
|
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?(']') |
24 | 26 |
|
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, ] |
28 | 29 |
|
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] |
35 | 31 |
|
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 | + } |
37 | 35 |
|
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) |
45 | 39 | 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 |
47 | 55 | end |
| 56 | + File.write(file, lines.join) |
48 | 57 | end |
49 | | -File.write(file, lines.join) |
|
0 commit comments