diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-13 10:09:41 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-05-13 10:09:41 +0000 |
commit | 944ff17f8a64092c80131afe2d0ce467b3cacce4 (patch) | |
tree | 67e550f41d7a63b041a8a0eb3faf483e65749678 /tool | |
parent | a03eeb000aae2be2ab798b11734b43cc0d0958ea (diff) | |
download | ruby-944ff17f8a64092c80131afe2d0ce467b3cacce4.tar.gz |
make-snapshot: support xz
* tool/make-snapshot (package): support xz. no longer runs with
1.8 or earlier.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'tool')
-rwxr-xr-x | tool/make-snapshot | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/tool/make-snapshot b/tool/make-snapshot index bacf54e556..c6d4449cdd 100755 --- a/tool/make-snapshot +++ b/tool/make-snapshot @@ -27,6 +27,13 @@ each versions may be followed by optional @revision. USAGE end +PACKAGES = { + "bzip" => %w".tar.bz2 bzip2 -c", + "gzip" => %w".tar.gz gzip -c", + "xz" => %w".tar.xz xz -c", + "zip" => %w".zip zip -qr", +} + ENV["LC_ALL"] = ENV["LANG"] = "C" SVNURL = URI.parse("http://svn.ruby-lang.org/repos/ruby/") RUBY_VERSION_PATTERN = /^\#define\s+RUBY_VERSION\s+"([\d.]+)"/ @@ -270,13 +277,32 @@ def package(rev, destdir) v = File.basename(v) end - return [["bzip tarball", ".tar.bz2", %w"tar cjf"], - ["gzip tarball", ".tar.gz", %w"tar czf"], - ["zip archive", ".zip", %w"zip -qr"] - ].collect do |mesg, ext, cmd| + tarball = nil + return PACKAGES.collect do |mesg, (ext, *cmd)| + File.directory?(destdir) or FileUtils.mkpath(destdir) file = File.join(destdir, "#{$archname||v}#{ext}") - print "creating #{mesg}... #{file}" - if system(*(cmd + [file, v])) + case ext + when /\.tar/ + if tarball + next if tarball.empty? + else + tarball = "#{$archname||v}.tar" + print "creating tarball... #{tarball}" + if system("tar", "cf", tarball, v) + puts " done" + else + puts " failed" + tarball = "" + next + end + end + print "creating #{mesg} tarball... #{file}" + done = system(*(cmd + [tarball]), out: file) + else + print "creating #{mesg} archive... #{file}" + done = system(*(cmd + [file, v])) + end + if done puts " done" file else |