blob: f8b051895b3d637113fdbb9d4cb1b06d9d2aaae5 [file] [log] [blame]
#!/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())