summaryrefslogtreecommitdiff
path: root/tool/make-snapshot
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-13 10:09:41 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-13 10:09:41 +0000
commit944ff17f8a64092c80131afe2d0ce467b3cacce4 (patch)
tree67e550f41d7a63b041a8a0eb3faf483e65749678 /tool/make-snapshot
parenta03eeb000aae2be2ab798b11734b43cc0d0958ea (diff)
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/make-snapshot')
-rwxr-xr-xtool/make-snapshot38
1 files changed, 32 insertions, 6 deletions
diff --git a/tool/make-snapshot b/tool/make-snapshot
index bacf54e..c6d4449 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