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, d) 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 }