package model import ( "ArmedPolice/utils" "bytes" "fmt" "go/format" "text/template" ) const ModelTemplate = `package {{.Name}} type {{.StrutName}} struct { Model ModelDeleted ModelAt } func (m *{{.StrutName}}) TableName() string { return "{{.TableName}}" } func New{{.StrutName}}() *{{.StrutName}} { return &{{.StrutName}}{} }` type ModelFile struct { // Name is the plugin name. Snack style. Name string // StrutName is the struct name. StrutName string // TableName is the model table name. TableName string } func (v *ModelFile) Execute(file, tmplName, tmpl string) error { fmt.Println(file) f, err := utils.Open(file) if err != nil { return err } defer f.Close() temp := new(template.Template) if temp, err = template.New(tmplName).Parse(tmpl); err != nil { return err } buf := new(bytes.Buffer) if err = temp.Execute(buf, v); err != nil { return err } out := make([]byte, 0) if out, err = format.Source(buf.Bytes()); err != nil { return err } _, err = f.Write(out) return err }