summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorNARUSE, Yui <naruse@airemix.jp>2019-10-22 21:37:49 +0900
committerNARUSE, Yui <naruse@airemix.jp>2019-10-22 21:44:19 +0900
commitd736511e4253c924bcfaa7125da3b07a67b6ecbf (patch)
tree42c7937c644991aa2725a22032a76c5664d2eaa7 /tool
parent04075305d3fd2806400235dfc744b6a0c70ef738 (diff)
Move format-release to tool and fix bugs
Diffstat (limited to 'tool')
-rwxr-xr-xtool/format-release46
1 files changed, 19 insertions, 27 deletions
diff --git a/tool/format-release b/tool/format-release
index b43010a105..a4331bb317 100755
--- a/tool/format-release
+++ b/tool/format-release
@@ -1,23 +1,11 @@
#!/usr/bin/env ruby
-#
-# Tool to update w.r-l.o files on release
-#
-# This receives `make dist`'s output, and prints
-#
-# * links and digests of tarballs for releate article
-# * patch for below data files
-# * _data/branches.yml
-# * _data/downloads.yml
-# * _data/releases.yml
-#
-# To apply the patch, `patch -p1 < patch.txt`
+# https://rubygems.org/gems/diffy
require "diffy"
Diffy::Diff.default_options.merge!(
include_diff_info: true,
context: 1,
)
-WWW = Dir.pwd # workdir of https://github.com/ruby/www.ruby-lang.org
class Tarball
attr_reader :version, :sha256
@@ -49,7 +37,6 @@ class Tarball
SHA1: #{@sha1}
SHA256: #{@sha256}
SHA512: #{@sha512}
-
eom
end
@@ -58,10 +45,10 @@ eom
# SHA1: 21f62c369661a2ab1b521fd2fa8191a4273e12a1
# SHA256: 97cea8aa63dfa250ba6902b658a7aa066daf817b22f82b7ee28f44aec7c2e394
# SHA512: 1e2042324821bb4e110af7067f52891606dcfc71e640c194ab1c117f0b941550e0b3ac36ad3511214ac80c536b9e5cfaf8789eec74cf56971a832ea8fc4e6d94
- def self.parse(io)
+ def self.parse(wwwdir, file)
ary = []
ver = nil
- io.read.scan(/^\* .*(?:\n .*)*/) do |unit|
+ File.read(file).scan(/^\* .*(?:\n .*)*/) do |unit|
path, size, sha1, sha256, sha512 = unit.lines.map(&:chomp)
path.slice!(0, 2)
size = size[/\d+/].to_i
@@ -80,22 +67,22 @@ eom
ary.each do |tarball|
puts tarball.to_md
end
- update_branches_yml(ver, xy)
- update_downloads_yml(ver, xy)
- update_releases_yml(ver, xy, ary)
+ update_branches_yml(ver, xy, wwwdir)
+ update_downloads_yml(ver, xy, wwwdir)
+ update_releases_yml(ver, xy, ary, wwwdir)
ary
end
- def self.update_branches_yml(ver, xy)
+ def self.update_branches_yml(ver, xy, wwwdir)
filename = "_data/branches.yml"
- orig_data = File.read(File.join(WWW, filename))
+ orig_data = File.read(File.join(wwwdir, filename))
data = orig_data.dup
if data.include?("\n- name: #{xy}\n")
data.sub!(/\n- name: #{Regexp.escape(xy)}\n(?: .*\n)*/) do |node|
unless ver.include?("-")
# assume this is X.Y.0 release
node.sub!(/^ status: preview\n/, " status: normal maintenance\n")
- node.sub!(/^ date:\n/, " date: #{Time.now.year}-12-25\n")
+ node.sub!(/^ date:\n/, " status: #{Time.now.year}-12-25\n")
end
node
end
@@ -122,9 +109,9 @@ eom
end
end
- def self.update_downloads_yml(ver, xy)
+ def self.update_downloads_yml(ver, xy, wwwdir)
filename = "_data/downloads.yml"
- orig_data = File.read(File.join(WWW, filename))
+ orig_data = File.read(File.join(wwwdir, filename))
data = orig_data.dup
if /^preview:\n\n(?: .*\n)* - #{Regexp.escape(xy)}\./ =~ data
@@ -149,9 +136,9 @@ eom
end
end
- def self.update_releases_yml(ver, xy, ary)
+ def self.update_releases_yml(ver, xy, ary, wwwdir)
filename = "_data/releases.yml"
- orig_data = File.read(File.join(WWW, filename))
+ orig_data = File.read(File.join(wwwdir, filename))
data = orig_data.dup
date = Time.now
@@ -200,6 +187,11 @@ eom
end
def main
- Tarball.parse(ARGF)
+ if ARGV.size != 2
+ STDERR.puts "usage: format-release <dir-of-w.r-l.o> <output-of-make-snapshot>"
+ exit
+ end
+ Tarball.parse(ARGV[0], ARGV[1])
end
+
main