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

Side by Side 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 unified diff | Download patch
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # -*- coding: UTF-8 -*-
3 #
4 # Copyright 2016 The Chromium Authors. All rights reserved.
5 # Use of this source code is governed by a BSD-style license that can be
6 # found in the LICENSE file.
7
8 """
9 Builds applications in debug mode:
10 - Copies the module directories into their destinations.
11 - Copies app.html as-is.
12 """
13
14 from os import path
15 from os.path import join
16 import modular_build
17 import os
18 import shutil
19 import sys
20
21
22 def main(argv):
23 try:
24 input_path_flag_index = argv.index('--input_path')
25 input_path = argv[input_path_flag_index + 1]
26 output_path_flag_index = argv.index('--output_path')
27 output_path = argv[output_path_flag_index + 1]
28 application_names = argv[1:input_path_flag_index]
29 except:
30 print('Usage: %s app_1 app_2 ... app_N --input_path <input_path> --outpu t_path <output_path>' % argv[0])
31 raise
32
33 loader = modular_build.DescriptorLoader(input_path)
34 for app in application_names:
35 descriptors = loader.load_application(app + '.json')
36 builder = DebugBuilder(app, descriptors, input_path, output_path)
37 builder.build_app()
38
39
40 def symlink_or_copy_file(src, dest, safe=False):
41 if safe and path.exists(dest):
42 os.remove(dest)
43 if hasattr(os, 'symlink'):
44 os.symlink(src, dest)
45 else:
46 shutil.copy(src, dest)
47
48
49 def symlink_or_copy_dir(src, dest):
50 if path.exists(dest):
51 shutil.rmtree(dest)
52 for src_dir, dirs, files in os.walk(src):
53 subpath = path.relpath(src_dir, src)
54 dest_dir = path.normpath(join(dest, subpath))
55 os.mkdir(dest_dir)
56 for name in files:
57 src_name = join(os.getcwd(), src_dir, name)
58 dest_name = join(dest_dir, name)
59 symlink_or_copy_file(src_name, dest_name)
60
61
62 # Outputs:
63 # <app_name>.html as-is
64 # <app_name>.js as-is
65 # <module_name>/<all_files>
66 class DebugBuilder(object):
67 def __init__(self, application_name, descriptors, application_dir, output_di r):
68 self.application_name = application_name
69 self.descriptors = descriptors
70 self.application_dir = application_dir
71 self.output_dir = output_dir
72
73 def app_file(self, extension):
74 return self.application_name + '.' + extension
75
76 def build_app(self):
77 if self.descriptors.has_html:
78 self._build_html()
79 for filename in os.listdir(self.application_dir):
80 src = join(os.getcwd(), self.application_dir, filename)
81 if os.path.isdir(src):
82 symlink_or_copy_dir(src, join(self.output_dir, filename))
83 else:
84 symlink_or_copy_file(src, join(self.output_dir, filename), safe= True)
85
86 def _build_html(self):
87 html_name = self.app_file('html')
88 symlink_or_copy_file(join(os.getcwd(), self.application_dir, html_name), join(self.output_dir, html_name), True)
89
90
91 if __name__ == '__main__':
92 sys.exit(main(sys.argv))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698