Проверка шаблона шины для iOS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

generate 1.9KB

11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
11 months ago
10 months ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env python3
  2. import os
  3. import sys
  4. from argparse import ArgumentParser
  5. from generation.generateStructure import *
  6. from generation.shortenName import *
  7. from generation.Result import *
  8. from parsing.parseLines import *
  9. from parsing.Structure import *
  10. DIR = os.path.dirname(os.path.realpath(sys.argv[0]))
  11. # Импорт из общей для всех генераторов директории.
  12. sys.path.append(f"{DIR}/../common")
  13. from modulePaths import *
  14. from readFile import *
  15. parser = ArgumentParser(prog='generate v2')
  16. parser.add_argument('module', type=str,
  17. help='the name of the module to generate')
  18. parser.add_argument('-i', '--input', type=str,
  19. help='The path and name of the input file')
  20. parser.add_argument('-o', '--output', type=str,
  21. help='The path of the output files')
  22. parser.add_argument('-s', '--source', type=str,
  23. help='The path of the source files')
  24. args = parser.parse_args()
  25. (PATH, MODULE) = modulePaths(args.module)
  26. print(f"Generating platform for module '{PATH}'...")
  27. FILE_IN = args.input or f"{DIR}/../../../Modules/{PATH}/{MODULE}.yml"
  28. DIR_OUT = args.output or f"{DIR}/../../../Modules/{PATH}/src/"
  29. FILE_OUT = os.path.join(DIR_OUT, f"{MODULE}.Generated.swift")
  30. FILE_OUT_V1 = os.path.join(DIR_OUT, f"{MODULE}.SectionGenerated.swift")
  31. MODULE_SRC = args.source or f"{DIR}/../../../Modules/{PATH}/src"
  32. # Удаляем первую версию генерированного файла при его наличии.
  33. if os.path.isfile(FILE_OUT_V1):
  34. os.remove(FILE_OUT_V1)
  35. # Читаем файл и разбираем его на ключи-значения.
  36. lines = readFile(FILE_IN)
  37. structure = Structure()
  38. parseLines(lines, structure)
  39. # Генерируем код.
  40. result = Result(DIR, PATH, MODULE, readFile, shortenName, MODULE_SRC, structure)
  41. generateStructure(result)
  42. # Сохраняем файл.
  43. with open(FILE_OUT, "w") as file:
  44. file.write(result.file)