Index: blimp/tools/create-bundle.py |
diff --git a/blimp/tools/create-bundle.py b/blimp/tools/create-bundle.py |
deleted file mode 100755 |
index e7d77888344cbee40ae250c40d49fedfa7b8ef78..0000000000000000000000000000000000000000 |
--- a/blimp/tools/create-bundle.py |
+++ /dev/null |
@@ -1,96 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright 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. |
- |
-'''Bundles the Blimp target and its runtime dependencies into a tarball. |
- |
- The created bundle can be passed as input to docker build. E.g. |
- docker build - < ../../out-linux/Debug/blimp_engine_deps.tar.gz |
-''' |
- |
- |
-import argparse |
-import os |
-import subprocess |
-import sys |
- |
-def ReadDependencies(manifest, relative_path): |
- """Returns a list of dependencies based on the specified manifest file. |
- The returned dependencies will be made relative to |relative_path| and |
- normalized. |
- :raises IOError: if the manifest could not be read. |
- """ |
- dependency_list = [] |
- with open(manifest) as f: |
- for line in f.readlines(): |
- # Strip comments. |
- dependency = line.partition('#')[0].strip() |
- # Ignore empty strings. |
- if dependency: |
- dependency = os.path.normpath(os.path.join(relative_path, dependency)) |
- dependency_list.append(dependency) |
- return dependency_list |
- |
-def main(): |
- parser = argparse.ArgumentParser(description=__doc__) |
- parser.add_argument('--build-dir', |
- help=('build output directory (e.g. out/Debug)'), |
- required=True, |
- metavar='DIR') |
- parser.add_argument('--filelist', |
- help=('optional space separated list of files (e.g. ' |
- 'Dockerfile and startup script) to add to the ' |
- 'bundle'), |
- required=False, |
- metavar='FILE', |
- nargs='*') |
- parser.add_argument('--manifest', |
- help=('file listing the set of files to include in ' |
- 'the bundle'), |
- required=True) |
- parser.add_argument('--output', |
- help=('name and path of bundle to create'), |
- required=True, |
- metavar='FILE') |
- parser.add_argument('--tar-contents-rooted-in', |
- help=('optional path prefix to use inside the resulting ' |
- 'tar file'), |
- required=False, |
- metavar='DIR') |
- args = parser.parse_args() |
- |
- dependencies_path = args.build_dir |
- if args.tar_contents_rooted_in: |
- dependencies_path = args.tar_contents_rooted_in |
- relative_path = os.path.relpath(args.build_dir, dependencies_path) |
- |
- dependency_list = ReadDependencies(args.manifest, relative_path) |
- |
- try: |
- env = os.environ.copy() |
- # Use fastest possible mode when gzipping. |
- env["GZIP"] = "-1" |
- subprocess_args = [ |
- "tar", |
- "-zcf", args.output, |
- # Ensure tarball content group permissions are appropriately set for |
- # use as part of a "docker build". That is group readable with |
- # executable files also being group executable. |
- "--mode=g+rX", |
- "-C", dependencies_path] + dependency_list |
- for f in args.filelist: |
- dirname, basename = os.path.split(f) |
- subprocess_args.extend(["-C", dirname, basename]) |
- subprocess.check_output( |
- subprocess_args, |
- # Redirect stderr to stdout, so that its output is captured. |
- stderr=subprocess.STDOUT, |
- env=env) |
- except subprocess.CalledProcessError as e: |
- print >> sys.stderr, "Failed to create tarball:" |
- print >> sys.stderr, e.output |
- sys.exit(1) |
- |
-if __name__ == "__main__": |
- main() |