зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1376550 - Support tar.gz (mac) regeneration of complete.mar r=mshal
Support OSX Signed nightlies (in the complete.mar too) MozReview-Commit-ID: HXiFGE14wYJ --HG-- extra : rebase_source : 1d02b4714c8fafe6cdcd74e6d9b5612c44dcb3b4
This commit is contained in:
Родитель
152c0296f8
Коммит
acdc65c932
|
@ -7,28 +7,39 @@ import sys
|
|||
import tempfile
|
||||
import shutil
|
||||
import zipfile
|
||||
import tarfile
|
||||
import subprocess
|
||||
import mozpack.path as mozpath
|
||||
from application_ini import get_application_ini_value
|
||||
from mozbuild.util import ensureParentDir
|
||||
|
||||
|
||||
def repackage_mar(topsrcdir, package, mar, output):
|
||||
if not zipfile.is_zipfile(package):
|
||||
raise Exception("Package file %s is not a valid .zip file." % package)
|
||||
if not zipfile.is_zipfile(package) and not tarfile.is_tarfile(package):
|
||||
raise Exception("Package file %s is not a valid .zip or .tar file." % package)
|
||||
|
||||
ensureParentDir(output)
|
||||
tmpdir = tempfile.mkdtemp()
|
||||
try:
|
||||
z = zipfile.ZipFile(package)
|
||||
z.extractall(tmpdir)
|
||||
filelist = z.namelist()
|
||||
z.close()
|
||||
if zipfile.is_zipfile(package):
|
||||
z = zipfile.ZipFile(package)
|
||||
z.extractall(tmpdir)
|
||||
filelist = z.namelist()
|
||||
z.close()
|
||||
else:
|
||||
z = tarfile.open(package)
|
||||
z.extractall(tmpdir)
|
||||
filelist = z.getnames()
|
||||
z.close()
|
||||
|
||||
toplevel_dirs = set([mozpath.split(f)[0] for f in filelist])
|
||||
excluded_stuff = set([' ', '.background', '.DS_Store', '.VolumeIcon.icns'])
|
||||
toplevel_dirs = toplevel_dirs - excluded_stuff
|
||||
# Make sure the .zip file just contains a directory like 'firefox/' at
|
||||
# the top, and find out what it is called.
|
||||
toplevel_dirs = set([mozpath.split(f)[0] for f in filelist])
|
||||
if len(toplevel_dirs) != 1:
|
||||
raise Exception("Package file is expected to have a single top-level directory (eg: 'firefox'), not: %s" % toplevel_dirs)
|
||||
raise Exception("Package file is expected to have a single top-level directory"
|
||||
"(eg: 'firefox'), not: %s" % toplevel_dirs)
|
||||
ffxdir = mozpath.join(tmpdir, toplevel_dirs.pop())
|
||||
|
||||
make_full_update = mozpath.join(topsrcdir, 'tools/update-packaging/make_full_update.sh')
|
||||
|
|
Загрузка…
Ссылка в новой задаче