Auto merge of #17085 - aneeshusa:fix-mach-upload-nightly-for-macbrew, r=larsbergstrom

Fix `./mach upload-nightly macbrew`

<!-- Please describe your changes on the following line: -->
Fix a few issues with the Homebrew repository updating.
Follow-up to #16565; should finish off #17045.

Lightly smoke-tested locally this time.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they will be tested on the builders

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/17085)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-05-30 14:06:59 -05:00 committed by GitHub
commit 011a7adf56
2 changed files with 23 additions and 3 deletions

View file

@ -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