ruby/distruby.rb

60 строки
1.4 KiB
Ruby
Исходник Ответственный История

Этот файл содержит невидимые символы Юникода!

Этот файл содержит невидимые символы Юникода, которые могут быть отображены не так, как показано ниже. Если это намеренно, можете спокойно проигнорировать это предупреждение. Используйте кнопку Экранировать, чтобы показать скрытые символы.

#!./miniruby
if RUBY_PATCHLEVEL.zero?
dirname = sprintf 'ruby-%s', RUBY_VERSION
tagname = dirname.gsub /ruby-(\d)\.(\d)\.(\d)/, 'v\1_\2_\3'
else
dirname = sprintf 'ruby-%s-p%u', RUBY_VERSION, RUBY_PATCHLEVEL
tagname = dirname.gsub /ruby-(\d)\.(\d)\.(\d)-p/, 'v\1_\2_\3_'
end
tgzname = dirname + '.tar.gz'
tbzname = dirname + '.tar.bz2'
zipname = dirname + '.zip'
repos = 'http://svn.ruby-lang.org/repos/ruby/tags/' + tagname
STDERR.puts 'exporting sources...'
system 'svn', 'export', '-q', repos, dirname
Dir.chdir dirname do
STDERR.puts 'generating configure...'
system 'autoconf'
system 'rm', '-rf', 'autom4te.cache'
STDERR.puts 'generating parse.c...'
system 'bison', '-y', '-o', 'parse.c', 'parse.y'
end
STDERR.puts 'generating tarballs...'
ENV['GZIP'] = '-9'
system 'tar', 'chofzp', tgzname, dirname
system 'tar', 'chojfp', tbzname, dirname
system 'zip', '-q9r', zipname, dirname
require 'digest/md5'
require 'digest/sha2'
for name in [tgzname, tbzname, zipname] do
open name, 'rb' do |fp|
str = fp.read
md5 = Digest::MD5.hexdigest str
sha = Digest::SHA256.hexdigest str
printf "MD5(%s)= %s\nSHA256(%s)= %s\nSIZE(%s)= %s\n\n",
name, md5,
name, sha,
name, str.size
end
end
#
# Local Variables:
# mode: ruby
# code: utf-8
# indent-tabs-mode: t
# tab-width: 3
# ruby-indent-level: 3
# fill-column: 79
# default-justification: full
# End:
# vi: ts=3 sw=3