Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Unified Diff: third_party/WebKit/Source/devtools/scripts/build_debug_applications.py

Issue 2336943002: DevTools: Simplify debug and release mode builds (Closed)
Patch Set: fix copyright year Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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))

Powered by Google App Engine
This is Rietveld 408576698