Add flat-.pkg support to CurlDownloadStrategy

This commit is contained in:
Adam Vandenberg 2010-06-28 21:28:01 -07:00
parent b583d0ae48
commit 4490b739d5

View File

@ -68,6 +68,9 @@ class CurlDownloadStrategy <AbstractDownloadStrategy
def stage
if @tarball_path.extname == '.jar'
magic_bytes = nil
elsif @tarball_path.extname == '.pkg'
# Use more than 4 characters to not clash with magicbytes
magic_bytes = "____pkg"
else
# get the first four bytes
File.open(@tarball_path) { |f| magic_bytes = f.read(4) }
@ -82,6 +85,9 @@ class CurlDownloadStrategy <AbstractDownloadStrategy
# TODO check if it's really a tar archive
safe_system '/usr/bin/tar', 'xf', @tarball_path
chdir
when '____pkg'
safe_system '/usr/sbin/pkgutil', '--expand', @tarball_path, File.basename(@url)
chdir
when 'Rar!'
quiet_safe_system 'unrar', 'x', {:quiet_flag => '-inul'}, @tarball_path
else