import argparse
import stat
import os
import sys
import json
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from utils import makedirs
def get_args(args):
parser = argparse.ArgumentParser()
parser.add_argument('--depfile', help='Path to depfile (refer to `gn help depfile`)')
parser.add_argument('--output_dir', help='output directory')
parser.add_argument('--source_dir', help='source directory')
parser.add_argument('--target', help='name of target')
parser.add_argument('--target_label')
parser.add_argument('--test_type')
parser.add_argument('--module_list_file', help='file name of module list')
parser.add_argument('--sources_file_search_root_dir',
help='root dir to search xx.sources files')
parser.add_argument('--sources',
help='case sources path defined in test template')
options = parser.parse_args(args)
return options
def main(args):
options = get_args(args)
print("test module_list_file = {}".\
format(os.path.dirname(options.module_list_file)))
if not os.path.exists(os.path.dirname(options.module_list_file)):
makedirs(os.path.dirname(options.module_list_file))
with os.fdopen(os.open(options.module_list_file,
os.O_RDWR | os.O_CREAT, stat.S_IWUSR | stat.S_IRUSR),
'w', encoding='utf-8') as module_list_file:
contents = json.dumps([{
'target': options.target,
'label': options.target_label,
'source_directory': options.source_dir,
'output_directory': options.output_dir,
'test_type': options.test_type
}])
module_list_file.write(contents)
fold = os.path.join(options.sources_file_search_root_dir, \
options.source_dir[(options.source_dir.rfind("../") + len("../")):])
if not os.path.exists(fold):
makedirs(fold)
sources_file_name = fold[fold.rfind("/") + len("/"):] + ".sources"
arg_sources = options.sources[0: (len(options.sources) - len(","))]
with os.fdopen(os.open(os.path.join(fold, sources_file_name),
os.O_RDWR | os.O_CREAT, stat.S_IWUSR | stat.S_IRUSR),
'a', encoding='utf-8') as source_defined_file:
list_sources = arg_sources.split(",")
for source in list_sources:
content = "{}/{}\n".format(
os.path.dirname(options.source_dir), source)
source_defined_file.write(content)
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))