aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo/package_commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/servo/package_commands.py')
-rw-r--r--python/servo/package_commands.py26
1 files changed, 23 insertions, 3 deletions
diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py
index 57294f00763..67da3f83d5c 100644
--- a/python/servo/package_commands.py
+++ b/python/servo/package_commands.py
@@ -59,6 +59,24 @@ PACKAGES = {
}
+TemporaryDirectory = None
+if sys.version_info >= (3, 2):
+ TemporaryDirectory = tempfile.TemporaryDirectory
+else:
+ import contextlib
+
+ # Not quite as robust as tempfile.TemporaryDirectory,
+ # but good enough for most purposes
+ @contextlib.contextmanager
+ def TemporaryDirectory(**kwargs):
+ dir_name = tempfile.mkdtemp(**kwargs)
+ try:
+ yield dir_name
+ except Exception as e:
+ shutil.rmtree(dir_name)
+ raise e
+
+
def otool(s):
o = subprocess.Popen(['/usr/bin/otool', '-L', s], stdout=subprocess.PIPE)
for l in o.stdout:
@@ -442,7 +460,7 @@ class PackageCommands(CommandBase):
brew_version = timestamp.strftime('%Y.%m.%d')
- with tempfile.TemporaryDirectory(prefix='homebrew-servo') as tmp_dir:
+ with TemporaryDirectory(prefix='homebrew-servo') as tmp_dir:
def call_git(cmd, **kwargs):
subprocess.check_call(
['git', '-C', tmp_dir] + cmd,
@@ -461,7 +479,7 @@ class PackageCommands(CommandBase):
formula = formula.replace('PACKAGEURL', package_url)
formula = formula.replace('SHA', digest)
formula = formula.replace('VERSION', brew_version)
- with open(path.join(tmp_dir, 'Formula', 'servo-bin.rb')) as f:
+ with open(path.join(tmp_dir, 'Formula', 'servo-bin.rb'), 'w') as f:
f.write(formula)
call_git(['add', path.join('.', 'Formula', 'servo-bin.rb')])
@@ -491,6 +509,8 @@ class PackageCommands(CommandBase):
upload_to_s3(platform, package, timestamp)
if platform == 'macbrew':
- update_brew(package, timestamp)
+ packages = PACKAGES[platform]
+ assert(len(packages) == 1)
+ update_brew(packages[0], timestamp)
return 0