feat:完善项目
This commit is contained in:
62
cmd/ctl/command/model/file.go
Normal file
62
cmd/ctl/command/model/file.go
Normal file
@ -0,0 +1,62 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"SciencesServer/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
|
||||
}
|
Reference in New Issue
Block a user