26 lines
1.1 KiB
Python
Executable File
26 lines
1.1 KiB
Python
Executable File
from pathlib import Path
|
|
|
|
APP_PARTS = ("core.js", "refresh.js", "preferences.js", "config-history.js", "runtime.js", "settings.js")
|
|
PANEL_PARTS = (
|
|
"management.js", "drafts.js", "integrations.js", "vhosts.js",
|
|
"web-server-profiles.js", "web-server.js", "docker.js", "streams.js",
|
|
"redirects.js", "host404.js", "traffic-panel.js", "cache-panel.js",
|
|
"transform-panel.js", "acme.js", "settings.js", "file-logs.js",
|
|
)
|
|
VHOST_PARTS = ("core.js", "health.js", "editor.js", "render.js")
|
|
|
|
def _read(root: Path, folder: str, parts: tuple[str, ...]) -> str:
|
|
return "\n".join((root / "src/admin/web" / folder / part).read_text(encoding="utf-8") for part in parts)
|
|
|
|
def read_vhosts_js(root: Path) -> str:
|
|
body = _read(root, "vhosts", VHOST_PARTS)
|
|
return "(() => {\n" + body + "\n})();"
|
|
|
|
def read_app_js(root: Path) -> str:
|
|
primary = _read(root, "app", APP_PARTS)
|
|
panel = "\n".join(
|
|
read_vhosts_js(root) if name == "vhosts.js" else (root / "src/admin/web" / name).read_text(encoding="utf-8")
|
|
for name in PANEL_PARTS
|
|
)
|
|
return primary + "\n" + panel
|