/
churchehe
/
HeKoti
ОбзорДокументацияВойти
/
churchehe
/
HeKoti
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
ДокументацияПоддержка
Политика конфиденциальностиПользовательское соглашениеПолитика использования «cookies»Согласие субъекта персональных данных
2026 ©
HeKoti/
scripts/
..
__pycache__

v0051=UX-UI

3 месяца назад
bundle-monaco-workers.mjs

chore(release): 0.3.4-3

2 месяца назад
check-hh-standards.cjs

a3

2 месяца назад
check-prisma-migrations-destructive.cjs

v0051=UX-UI

3 месяца назад
deploy-update.sh

feat: multi-instance Docker stacks, home move fix, login UX; release 0.4.7

2 месяца назад
docker-healthcheck.cjs

4110

2 месяца назад
ensure-admin.ts

фикс тех долга от 01

2 месяца назад
ensure-prod-secrets.cjs

feat(ops): auto-generate prod secrets on first boot; release 0.4.8

2 месяца назад
fix-lock-emnapi.cjs

0.1.0 new-ux-ui fix4

2 месяца назад
install-banner.cjs

hekoti-400=ux-ui-src/components/topbar.tsx

3 месяца назад
reindex-page-search.ts

0.4.5 Admin-1

2 месяца назад
start-production.cjs

feat(ops): auto-generate prod secrets on first boot; release 0.4.8

2 месяца назад
test-mermaid-node.mts

4110

2 месяца назад
update_compose_mermaid_readme.py

v0051=UX-UI

3 месяца назад
write-version.cjs

0.1.0 new-ux-ui

2 месяца назад
update_compose_mermaid_readme.py
#!/usr/bin/env python3
"""
Replace the Mermaid block between COMPOSE_MERMAID_AUTO_START/END in README.md
using docker-compose-viz-mermaid (docker-compose.yml → Mermaid text).
 
Requires Docker. From repo root:
python scripts/update_compose_mermaid_readme.py
 
Environment:
COMPOSE_VIZ_IMAGE — override image (default: derlin/docker-compose-viz-mermaid)
"""
from __future__ import annotations
 
import os
import re
import subprocess
import sys
from pathlib import Path
 
ROOT = Path(__file__).resolve().parent.parent
README = ROOT / "README.md"
COMPOSE_REL = "docker-compose.yml"
IMAGE = os.environ.get("COMPOSE_VIZ_IMAGE", "derlin/docker-compose-viz-mermaid")
 
START = "<!-- COMPOSE_MERMAID_AUTO_START -->"
END = "<!-- COMPOSE_MERMAID_AUTO_END -->"
 
 
def run_viz() -> str:
compose = ROOT / COMPOSE_REL
if not compose.is_file():
sys.exit(f"Missing {compose}")
 
cmd = [
"docker",
"run",
"--rm",
"-v",
f"{ROOT}:/work",
"-w",
"/work",
IMAGE,
COMPOSE_REL,
"-f",
"text",
]
r = subprocess.run(cmd, capture_output=True, text=True)
if r.returncode != 0:
msg = r.stderr.strip() or r.stdout.strip() or "unknown error"
sys.exit(f"docker-compose-viz-mermaid failed ({r.returncode}): {msg}")
return r.stdout.rstrip("\n")
 
 
def main() -> None:
text = README.read_text(encoding="utf-8")
if START not in text or END not in text:
sys.exit(f"{README} must contain {START!r} and {END!r}")
 
mermaid_body = run_viz().strip()
if not mermaid_body:
sys.exit("Visualizer returned empty Mermaid output")
 
block = f"```mermaid\n{mermaid_body}\n```"
pattern = re.compile(re.escape(START) + r"\s*.*?\s*" + re.escape(END), re.DOTALL)
new_text, n = pattern.subn(f"{START}\n{block}\n{END}", text, count=1)
if n != 1:
sys.exit("Could not replace exactly one marked region (check markers are unique and paired).")
 
if new_text == text:
print("README.md already up to date.")
return
 
README.write_text(new_text, encoding="utf-8", newline="\n")
print("Updated README.md Mermaid diagram.")
 
 
if __name__ == "__main__":
main()