Index: luci_hacks/luci_recipe_run.py |
diff --git a/luci_hacks/luci_recipe_run.py b/luci_hacks/luci_recipe_run.py |
deleted file mode 100755 |
index 9217b666c02f2b2fd60384816924073674b59bf9..0000000000000000000000000000000000000000 |
--- a/luci_hacks/luci_recipe_run.py |
+++ /dev/null |
@@ -1,81 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright (c) 2015 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
- |
-"""Download recipe prerequisites and run a single recipe.""" |
- |
- |
-import base64 |
-import json |
-import os |
-import subprocess |
-import sys |
-import tarfile |
-import urllib2 |
-import zlib |
- |
- |
-def download(source, dest): |
- u = urllib2.urlopen(source) # TODO: Verify certificate? |
- with open(dest, 'wb') as f: |
- while True: |
- buf = u.read(8192) |
- if not buf: |
- break |
- f.write(buf) |
- |
- |
-def unzip(source, dest): |
- with tarfile.open(source, 'r') as z: |
- z.extractall(dest) |
- |
- |
-def get_infra(dt_dir, root_dir): |
- fetch = os.path.join(dt_dir, 'fetch.py') |
- subprocess.check_call([sys.executable, fetch, 'infra'], cwd=root_dir) |
- |
- |
-def seed_properties(args): |
- # Assumes args[0] is factory properties and args[1] is build properties. |
- fact_prop_str = args[0][len('--factory-properties-gz='):] |
- build_prop_str = args[1][len('--build-properties-gz='):] |
- fact_prop = json.loads(zlib.decompress(base64.b64decode(fact_prop_str))) |
- build_prop = json.loads(zlib.decompress(base64.b64decode(build_prop_str))) |
- for k, v in fact_prop.iteritems(): |
- print '@@@SET_BUILD_PROPERTY@%s@%s@@@' % (k, v) |
- for k, v in build_prop.iteritems(): |
- print '@@@SET_BUILD_PROPERTY@%s@%s@@@' % (k, v) |
- |
- |
-def main(args): |
- cwd = os.getcwd() |
- |
- # Bootstrap depot tools (required for fetching build/infra) |
- dt_url = 'https://storage.googleapis.com/dumbtest/depot_tools.tar.gz' |
- dt_dir = os.path.join(cwd, 'staging') |
- os.makedirs(dt_dir) |
- dt_zip = os.path.join(dt_dir, 'depot_tools.tar.gz') |
- download(dt_url, os.path.join(dt_zip)) |
- unzip(dt_zip, dt_dir) |
- dt_path = os.path.join(dt_dir, 'depot_tools') |
- os.environ['PATH'] = '%s:%s' % (dt_path, os.environ['PATH']) |
- |
- # Fetch infra (which comes with build, which comes with recipes) |
- root_dir = os.path.join(cwd, 'b') |
- os.makedirs(root_dir) |
- get_infra(dt_path, root_dir) |
- work_dir = os.path.join(root_dir, 'build', 'slave', 'bot', 'build') |
- os.makedirs(work_dir) |
- |
- # Emit annotations that encapsulates build properties. |
- seed_properties(args) |
- |
- # JUST DO IT. |
- cmd = [sys.executable, '-u', '../../../scripts/slave/annotated_run.py'] |
- cmd.extend(args) |
- subprocess.check_call(cmd, cwd=work_dir) |
- |
-if __name__ == '__main__': |
- sys.exit(main(sys.argv[1:])) |