Проверка шаблона шины для iOS
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

generate 1.6KB

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