#!/usr/bin/env python3 import os import sys from argparse import ArgumentParser from generateStructure import * from parseLines import * from readModuleSrc import * from Structure import * DIR = os.path.dirname(os.path.realpath(sys.argv[0])) # Импорт из общей для всех генераторов директории. sys.path.append(f"{DIR}/../common") from modulePaths import * from readFile import * parser = ArgumentParser(prog='generate v3') parser.add_argument('module', type=str, help='the name of the module to generate') parser.add_argument('-i', '--input', type=str, help='The path and name of the input file') parser.add_argument('-o', '--output', type=str, help='The path of the output files') parser.add_argument('-s', '--source', type=str, help='The path of the source files') args = parser.parse_args() (PATH, MODULE) = modulePaths(args.module) print(f"Generating platform for module '{PATH}'...") FILE_IN = args.input or f"{DIR}/../../../Modules/{PATH}/{MODULE}.yml" DIR_OUT = args.output or f"{DIR}/../../../Modules/{PATH}/src/" FILE_OUT = os.path.join(DIR_OUT, f"{MODULE}.Generated.swift") # Читаем файл и разбираем его на ключи-значения. lines = readFile(FILE_IN) structure = Structure() parseLines(lines, structure) ORIG_SRC = args.source or f"{DIR}/../../../Modules/{structure.src.name}/src" structure.orig = readModuleSrc(ORIG_SRC, readFile) # Генерируем код. output = generateStructure(structure) # Сохраняем файл. with open(FILE_OUT, "w") as file: file.write(output)