| #!/usr/bin/env python3 |
| # |
| # Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file |
| # for details. All rights reserved. Use of this source code is governed by a |
| # BSD-style license that can be found in the LICENSE file. |
| # |
| |
| # Finds files in the given directories and their subdirectories, and prints them |
| # in the json format expected by GN fuchsia_component's resources arg: |
| # [ |
| # { |
| # "path": "path/to/file.dart", |
| # "dest": "data/path/to/file.dart" |
| # }, |
| # ... |
| # ] |
| |
| import sys |
| import os |
| |
| from os.path import join, abspath, relpath |
| |
| DART_DIR = abspath(join(__file__, '..', '..', '..')) |
| |
| |
| def listFiles(path): |
| allFiles = [] |
| for dirpath, dirs, files in os.walk(join(DART_DIR, path)): |
| allFiles += [ |
| relpath(abspath(join(dirpath, p)), DART_DIR) for p in files |
| ] |
| return allFiles |
| |
| |
| def printOutput(files): |
| print('[') |
| print(',\n'.join([ |
| ' {\n "path": "%s",\n "dest": "data/%s"\n }' % (f, f) |
| for f in files |
| ])) |
| print(']') |
| |
| |
| def main(): |
| if len(sys.argv) < 2: |
| print('Expected at least 1 arg, the paths to search.') |
| return 1 |
| allFiles = [] |
| for directory in sys.argv[1:]: |
| files = listFiles(directory) |
| if len(files) == 0: |
| print('Did not find any files in the directory: ' + directory) |
| return 2 |
| allFiles += files |
| printOutput(sorted(allFiles)) |
| return 0 |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |