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

56 行
1.9KB

  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)