| #!/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 os |
| import shutil |
| import sys |
| |
| import modular_build |
| |
| |
| 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] |
| build_stamp_index = argv.index('--build_stamp') |
| build_stamp_path = argv[build_stamp_index + 1] |
| except: |
| print('Usage: %s app_1 app_2 ... app_N --input_path <input_path> --output_path <output_path>' % argv[0]) |
| raise |
| |
| symlink_dir_or_copy(input_path, output_path) |
| |
| with open(build_stamp_path, 'w') as file: |
| file.write('stamp') |
| |
| |
| def symlink_dir_or_copy(src, dest): |
| if hasattr(os, 'symlink'): |
| if path.exists(dest): |
| if os.path.islink(dest): |
| os.unlink(dest) |
| else: |
| shutil.rmtree(dest) |
| os.symlink(join(os.getcwd(), src), dest) |
| else: |
| for filename in os.listdir(src): |
| new_src = join(os.getcwd(), src, filename) |
| if os.path.isdir(new_src): |
| copy_dir(new_src, join(dest, filename)) |
| else: |
| copy_file(new_src, join(dest, filename), safe=True) |
| |
| |
| def copy_file(src, dest, safe=False): |
| if safe and path.exists(dest): |
| os.remove(dest) |
| shutil.copy(src, dest) |
| |
| |
| def 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.makedirs(dest_dir) |
| for name in files: |
| src_name = join(os.getcwd(), src_dir, name) |
| dest_name = join(dest_dir, name) |
| copy_file(src_name, dest_name) |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main(sys.argv)) |