Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
107352787c | ||
|
|
57fa355a6f | ||
|
|
806b70dee6 | ||
|
|
884c349d11 |
2
go.mod
2
go.mod
@@ -1,3 +1,3 @@
|
||||
module gitea.tecamino.com/paadi/template-builder.git
|
||||
module gitea.tecamino.com/paadi/template-builder
|
||||
|
||||
go 1.25.4
|
||||
|
||||
5
models/output.go
Normal file
5
models/output.go
Normal file
@@ -0,0 +1,5 @@
|
||||
package models
|
||||
|
||||
type Outputs []Output
|
||||
|
||||
type Output []byte
|
||||
@@ -1,8 +1,11 @@
|
||||
package templatebuilder
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"html/template"
|
||||
"os"
|
||||
|
||||
"gitea.tecamino.com/paadi/template-builder/models"
|
||||
)
|
||||
|
||||
type TemplateBuilder struct {
|
||||
@@ -12,7 +15,7 @@ func NewTemplateBuilder() *TemplateBuilder {
|
||||
return &TemplateBuilder{}
|
||||
}
|
||||
|
||||
func (tb *TemplateBuilder) Generate(templatePath, outputFile string, data any) error {
|
||||
func (tb *TemplateBuilder) GenerateFile(templatePath, outputFile string, data any) error {
|
||||
tmpl, err := template.ParseFiles(templatePath)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -30,3 +33,35 @@ func (tb *TemplateBuilder) Generate(templatePath, outputFile string, data any) e
|
||||
}
|
||||
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
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package test
|
||||
import (
|
||||
"testing"
|
||||
|
||||
templatebuilder "gitea.tecamino.com/paadi/template-builder.git"
|
||||
templatebuilder "gitea.tecamino.com/paadi/template-builder"
|
||||
)
|
||||
|
||||
type Inventory struct {
|
||||
@@ -11,13 +11,24 @@ type Inventory struct {
|
||||
Count uint
|
||||
}
|
||||
|
||||
func TestTemplateBuilder(t *testing.T) {
|
||||
|
||||
func TestTemplateBuilderFile(t *testing.T) {
|
||||
sweaters := Inventory{"wool", 17}
|
||||
t.Log("start test")
|
||||
tmplBuilder := templatebuilder.NewTemplateBuilder()
|
||||
err := tmplBuilder.Generate("test.tmpl", "test.txt", sweaters)
|
||||
err := tmplBuilder.GenerateFile("test.tmpl", "test.txt", sweaters)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTemplateBuilderData(t *testing.T) {
|
||||
sweaters := Inventory{"wool", 17}
|
||||
t.Log("start test")
|
||||
tmplBuilder := templatebuilder.NewTemplateBuilder()
|
||||
data, err := tmplBuilder.Generate("test.tmpl", sweaters)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Log(data)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user