go/sqlgen/template.go

37 lines
644 B
Go
Raw Permalink Normal View History

2024-11-11 05:36:55 +00:00
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()
}