#!/usr/bin/env python3 """Разбивает src/all.js на несколько файлов по заданным диапазонам строк. Диапазоны указаны как (start, end) включительно, в порядке добавления. Файлы создаются в src/, затем удаляется исходный src/all.js. """ import os BASE_DIR = os.path.dirname(os.path.abspath(__file__)) SRC = os.path.join(BASE_DIR, "src") SOURCE = os.path.join(SRC, "all.js") # (filename, [(start, end), ...]) PLAN = [ ("00-config.js", [(1, 72)]), ("10-dom.js", [(74, 122)]), ("20-property.js", [(124, 239)]), ("30-utils.js", [(241, 302), (601, 626), (899, 922)]), ("40-api.js", [(304, 363)]), ("50-common-ui.js", [(365, 382), (462, 469), (924, 999), (1149, 1259), (1261, 1265), (1627, 1642)]), ("60-cp-files.js", [(471, 599), (628, 858), (1131, 1147)]), ("70-cp-edit.js", [(384, 460), (862, 897), (1001, 1129), (1320, 1443), (1445, 1625), (1644, 2103)]), ("75-map.js", [(1267, 1285), (2105, 2128)]), ("80-route-build.js", [(2130, 2386)]), ("90-route-edit.js", [(2388, 2555)]), ("100-route-stages.js", [(1287, 1318), (2557, 2614)]), ("110-main.js", [(2616, 2821)]), ] def main(): with open(SOURCE, "r", encoding="utf-8") as f: lines = f.readlines() total = len(lines) for name, ranges in PLAN: parts = [] for start, end in ranges: if start < 1 or end > total or start > end: raise ValueError( "{}: неверный диапазон {}-{} (всего строк {})".format(name, start, end, total) ) parts.append("".join(lines[start - 1:end])) content = "\n".join(parts).rstrip("\n") + "\n" path = os.path.join(SRC, name) with open(path, "w", encoding="utf-8") as f: f.write(content) print("OK {} (строк в файле: {})".format(name, content.count("\n"))) if __name__ == "__main__": main()