51 lines
866 B
Go
51 lines
866 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"converge/pkg/templates"
|
|
"github.com/a-h/templ"
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
type RenderFunc func(secure string, host string, username string) templ.Component
|
|
|
|
type Params struct {
|
|
secure string
|
|
host string
|
|
username string
|
|
}
|
|
|
|
type Rendering struct {
|
|
params Params
|
|
render RenderFunc
|
|
}
|
|
|
|
func render(dir string, name string, params Params, 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(params.secure, params.host, params.username).Render(context.Background(), f)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func main() {
|
|
dir := "html/docs"
|
|
|
|
params := Params{
|
|
secure: "s",
|
|
host: "example.com",
|
|
username: "converge",
|
|
}
|
|
|
|
render(dir, "index.html", params, templates.Index)
|
|
}
|