|
|
@@ -0,0 +1,55 @@ |
|
|
|
#!/usr/bin/env python3 |
|
|
|
import os |
|
|
|
import sys |
|
|
|
from argparse import ArgumentParser |
|
|
|
from generation.generateStructure import * |
|
|
|
from generation.shortenName import * |
|
|
|
from generation.Result import * |
|
|
|
from parsing.parseLines import * |
|
|
|
from parsing.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 v2') |
|
|
|
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") |
|
|
|
FILE_OUT_V1 = os.path.join(DIR_OUT, f"{MODULE}.SectionGenerated.swift") |
|
|
|
MODULE_SRC = args.source or f"{DIR}/../../../Modules/{PATH}/src" |
|
|
|
|
|
|
|
# Удаляем первую версию генерированного файла при его наличии. |
|
|
|
if os.path.isfile(FILE_OUT_V1): |
|
|
|
os.remove(FILE_OUT_V1) |
|
|
|
|
|
|
|
# Читаем файл и разбираем его на ключи-значения. |
|
|
|
lines = readFile(FILE_IN) |
|
|
|
structure = Structure() |
|
|
|
parseLines(lines, structure) |
|
|
|
|
|
|
|
# Генерируем код. |
|
|
|
result = Result(DIR, PATH, MODULE, readFile, shortenName, MODULE_SRC, structure) |
|
|
|
generateStructure(result) |
|
|
|
|
|
|
|
# Сохраняем файл. |
|
|
|
with open(FILE_OUT, "w") as file: |
|
|
|
file.write(result.file) |