Add root index generation

This commit is contained in:
Jordan Wages 2025-07-18 02:46:26 -05:00
commit 21762bf1bd
3 changed files with 94 additions and 0 deletions

View file

@ -128,6 +128,26 @@ def _generate_all_domains(interval: str) -> None:
_generate_interval(interval, domain)
def _generate_root_index() -> None:
"""Render the top-level index listing all intervals and domains."""
intervals = [p.name for p in OUTPUT_DIR.iterdir() if p.is_dir() and p.name != "domains"]
intervals.sort()
domains_dir = OUTPUT_DIR / "domains"
domains: List[str] = []
if domains_dir.is_dir():
domains = [p.name for p in domains_dir.iterdir() if p.is_dir()]
domains.sort()
env = Environment(loader=FileSystemLoader(TEMPLATE_DIR))
template = env.get_template("index.html")
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
out_path = OUTPUT_DIR / "index.html"
out_path.write_text(template.render(intervals=intervals, domains=domains))
typer.echo(f"Generated root index at {out_path}")
@app.command()
def hourly(
domain: Optional[str] = typer.Option(
@ -192,5 +212,11 @@ def monthly(
_generate_interval("monthly", domain)
@app.command()
def index() -> None:
"""Generate the root index page linking all reports."""
_generate_root_index()
if __name__ == "__main__":
app()