Fix duplicate icon assignment

This commit is contained in:
Jordan Wages 2025-07-19 03:58:41 -05:00
commit 4017b4ab72
211 changed files with 782 additions and 6 deletions

View file

@ -1,6 +1,7 @@
import json
import sqlite3
from pathlib import Path
import shutil
from typing import List, Dict, Optional
import yaml
@ -54,6 +55,17 @@ def _save_json(path: Path, data: List[Dict]) -> None:
path.write_text(json.dumps(data, indent=2))
def _copy_icons() -> None:
"""Copy vendored icons to the output directory."""
src_dir = Path("static/icons")
dst_dir = OUTPUT_DIR / "icons"
if not src_dir.is_dir():
return
dst_dir.mkdir(parents=True, exist_ok=True)
for icon in src_dir.glob("*.svg"):
shutil.copy(icon, dst_dir / icon.name)
def _render_snippet(report: Dict, out_dir: Path) -> None:
"""Render a single report snippet to ``<name>.html`` inside ``out_dir``."""
env = Environment(loader=FileSystemLoader(TEMPLATE_DIR))
@ -106,6 +118,8 @@ def _generate_interval(interval: str, domain: Optional[str] = None) -> None:
typer.echo("No report definitions found")
return
_copy_icons()
bucket = _bucket_expr(interval)
conn = sqlite3.connect(DB_PATH)
@ -153,6 +167,8 @@ def _generate_interval(interval: str, domain: Optional[str] = None) -> None:
"json": f"{name}.json",
"html": f"{name}.html",
}
if "icon" in definition:
entry["icon"] = definition["icon"]
if "color" in definition:
entry["color"] = definition["color"]
if "colors" in definition:
@ -175,6 +191,7 @@ def _generate_all_domains(interval: str) -> None:
def _generate_root_index() -> None:
"""Render the top-level index listing all intervals and domains."""
_copy_icons()
intervals = [
p.name
for p in OUTPUT_DIR.iterdir()
@ -204,6 +221,8 @@ def _generate_global() -> None:
typer.echo("No report definitions found")
return
_copy_icons()
conn = sqlite3.connect(DB_PATH)
cur = conn.cursor()
@ -230,6 +249,8 @@ def _generate_global() -> None:
"json": f"{name}.json",
"html": f"{name}.html",
}
if "icon" in definition:
entry["icon"] = definition["icon"]
if "color" in definition:
entry["color"] = definition["color"]
if "colors" in definition: