| Index: third_party/WebKit/Source/devtools/scripts/build_debug_applications.py
|
| diff --git a/third_party/WebKit/Source/devtools/scripts/build_debug_applications.py b/third_party/WebKit/Source/devtools/scripts/build_debug_applications.py
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..42a638968f86fd2088cfb77b33eb98fd831cde56
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/devtools/scripts/build_debug_applications.py
|
| @@ -0,0 +1,92 @@
|
| +#!/usr/bin/env python
|
| +# -*- coding: UTF-8 -*-
|
| +#
|
| +# Copyright 2016 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.
|
| +
|
| +"""
|
| +Builds applications in debug mode:
|
| +- Copies the module directories into their destinations.
|
| +- Copies app.html as-is.
|
| +"""
|
| +
|
| +from os import path
|
| +from os.path import join
|
| +import modular_build
|
| +import os
|
| +import shutil
|
| +import sys
|
| +
|
| +
|
| +def main(argv):
|
| + try:
|
| + input_path_flag_index = argv.index('--input_path')
|
| + input_path = argv[input_path_flag_index + 1]
|
| + output_path_flag_index = argv.index('--output_path')
|
| + output_path = argv[output_path_flag_index + 1]
|
| + application_names = argv[1:input_path_flag_index]
|
| + except:
|
| + print('Usage: %s app_1 app_2 ... app_N --input_path <input_path> --output_path <output_path>' % argv[0])
|
| + raise
|
| +
|
| + loader = modular_build.DescriptorLoader(input_path)
|
| + for app in application_names:
|
| + descriptors = loader.load_application(app + '.json')
|
| + builder = DebugBuilder(app, descriptors, input_path, output_path)
|
| + builder.build_app()
|
| +
|
| +
|
| +def symlink_or_copy_file(src, dest, safe=False):
|
| + if safe and path.exists(dest):
|
| + os.remove(dest)
|
| + if hasattr(os, 'symlink'):
|
| + os.symlink(src, dest)
|
| + else:
|
| + shutil.copy(src, dest)
|
| +
|
| +
|
| +def symlink_or_copy_dir(src, dest):
|
| + if path.exists(dest):
|
| + shutil.rmtree(dest)
|
| + for src_dir, dirs, files in os.walk(src):
|
| + subpath = path.relpath(src_dir, src)
|
| + dest_dir = path.normpath(join(dest, subpath))
|
| + os.mkdir(dest_dir)
|
| + for name in files:
|
| + src_name = join(os.getcwd(), src_dir, name)
|
| + dest_name = join(dest_dir, name)
|
| + symlink_or_copy_file(src_name, dest_name)
|
| +
|
| +
|
| +# Outputs:
|
| +# <app_name>.html as-is
|
| +# <app_name>.js as-is
|
| +# <module_name>/<all_files>
|
| +class DebugBuilder(object):
|
| + def __init__(self, application_name, descriptors, application_dir, output_dir):
|
| + self.application_name = application_name
|
| + self.descriptors = descriptors
|
| + self.application_dir = application_dir
|
| + self.output_dir = output_dir
|
| +
|
| + def app_file(self, extension):
|
| + return self.application_name + '.' + extension
|
| +
|
| + def build_app(self):
|
| + if self.descriptors.has_html:
|
| + self._build_html()
|
| + for filename in os.listdir(self.application_dir):
|
| + src = join(os.getcwd(), self.application_dir, filename)
|
| + if os.path.isdir(src):
|
| + symlink_or_copy_dir(src, join(self.output_dir, filename))
|
| + else:
|
| + symlink_or_copy_file(src, join(self.output_dir, filename), safe=True)
|
| +
|
| + def _build_html(self):
|
| + html_name = self.app_file('html')
|
| + symlink_or_copy_file(join(os.getcwd(), self.application_dir, html_name), join(self.output_dir, html_name), True)
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + sys.exit(main(sys.argv))
|
|
|