go/sqlgen/template.go
2024-11-11 06:36:55 +01:00

37 lines
644 B
Go

package sqlgen
import (
_ "embed"
"os"
"os/exec"
"path/filepath"
"text/template"
)
//go:embed sqlite.go.tmpl
var sqliteTemplate string
func render(templateStr, schemaPath, outputPath string) error {
sch, err := parsePath(schemaPath)
if err != nil {
return err
}
tmpl := template.Must(template.New("").Parse(templateStr))
fOut, err := os.Create(outputPath)
if err != nil {
return err
}
defer fOut.Close()
err = tmpl.Execute(fOut, struct {
PackageName string
Schema *schema
}{filepath.Base(filepath.Dir(outputPath)), sch})
if err != nil {
return err
}
return exec.Command("gofmt", "-w", outputPath).Run()
}