package main

import (
	"context"
	templates2 "converge/pkg/server/templates"
	"github.com/a-h/templ"
	"log"
	"os"
	"path/filepath"
)

type RenderFunc func() templ.Component

func render(dir string, name string, render RenderFunc) {
	fname := filepath.Join(dir, name)
	log.Printf("Writing to %s", fname)
	f, err := os.Create(fname)
	if err != nil {
		panic(err)
	}
	defer f.Close()

	err = render().Render(context.Background(), f)
	if err != nil {
		panic(err)
	}
}

func main() {
	dir := "html/docs"

	fullindex := func() templ.Component {
		return templates2.Index("s", "example.com", "converge")
	}
	usage := func() templ.Component {
		return templates2.UsageTab("s", "example.com", "converge")
	}

	render(dir, "fullindex.html", fullindex)
	render(dir, "index.html", templates2.AboutTab)
	render(dir, "usage.html", usage)
	render(dir, "downloads.html", templates2.Downloads)
}