summaryrefslogtreecommitdiff
path: root/distruby.rb
blob: dcc3e76ce8c47902f361a7bf98ee0a082536e633 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!./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
tarname = dirname + '.tar.gz'
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 tarball...'
system 'tar', 'chofzp', tarname, dirname

open tarname, 'rb' do |fp|
	require 'digest/md5'
	require 'digest/sha1'
	str = fp.read
	md5 = Digest::MD5.hexdigest str
	sha = Digest::SHA1.hexdigest str
	printf "MD5(%s)= %s\nSHA1(%s)= %s\n", tarname, md5, tarname, sha
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