Files
template-builder/templateBuilder.go
Adrian Zürcher 107352787c fix wrong variable
2026-01-08 09:42:27 +01:00

68 lines
1.2 KiB
Go

package templatebuilder
import (
"bytes"
"html/template"
"os"
"gitea.tecamino.com/paadi/template-builder/models"
)
type TemplateBuilder struct {
}
func NewTemplateBuilder() *TemplateBuilder {
return &TemplateBuilder{}
}
func (tb *TemplateBuilder) GenerateFile(templatePath, outputFile string, data any) error {
tmpl, err := template.ParseFiles(templatePath)
if err != nil {
return err
}
f, err := os.Create(outputFile)
if err != nil {
return err
}
defer f.Close()
err = tmpl.Execute(f, data)
if err != nil {
return err
}
return nil
}
func (tb *TemplateBuilder) Generate(templatePath string, data any) (b []byte, err error) {
tmpl, err := template.ParseFiles(templatePath)
if err != nil {
return
}
var buf bytes.Buffer
err = tmpl.Execute(&buf, data)
if err != nil {
return
}
b = buf.Bytes()
return
}
func (tb *TemplateBuilder) GenerateMultiple(templatePath string, data ...any) (output models.Outputs, err error) {
tmpl, err := template.ParseFiles(templatePath)
if err != nil {
return
}
for _, d := range data {
var buf bytes.Buffer
err = tmpl.Execute(&buf, d)
if err != nil {
return
}
output = append(output, buf.Bytes())
}
return
}