model template fix (#169)

* replace quote

* rpc disable override main.go

* reactor template

* add model flag -style

* add model flag -style

* reactor model  template name of error
This commit is contained in:
Keson
2020-10-27 22:42:53 +08:00
committed by GitHub
parent 4287877b74
commit 607fc3297a
10 changed files with 80 additions and 31 deletions

View File

@@ -17,6 +17,9 @@ import (
const (
pwd = "."
createTableFlag = `(?m)^(?i)CREATE\s+TABLE` // ignore case
NamingLower = "lower"
NamingCamel = "camel"
NamingUnderline = "underline"
)
type (
@@ -24,16 +27,17 @@ type (
source string
dir string
console.Console
pkg string
pkg string
namingStyle string
}
Option func(generator *defaultGenerator)
)
func NewDefaultGenerator(source, dir string, opt ...Option) *defaultGenerator {
func NewDefaultGenerator(source, dir, namingStyle string, opt ...Option) *defaultGenerator {
if dir == "" {
dir = pwd
}
generator := &defaultGenerator{source: source, dir: dir}
generator := &defaultGenerator{source: source, dir: dir, namingStyle: namingStyle}
var optionList []Option
optionList = append(optionList, newDefaultOption())
optionList = append(optionList, opt...)
@@ -72,7 +76,14 @@ func (g *defaultGenerator) Start(withCache bool) error {
}
for tableName, code := range modelList {
name := fmt.Sprintf("%smodel.go", strings.ToLower(stringx.From(tableName).ToCamel()))
tn := stringx.From(tableName)
name := fmt.Sprintf("%smodel.go", strings.ToLower(tn.ToCamel()))
switch g.namingStyle {
case NamingCamel:
name = fmt.Sprintf("%sModel.go", tn.ToCamel())
case NamingUnderline:
name = fmt.Sprintf("%s_model.go", tn.ToSnake())
}
filename := filepath.Join(dirAbs, name)
if util.FileExists(filename) {
g.Warning("%s already exists, ignored.", name)
@@ -85,7 +96,7 @@ func (g *defaultGenerator) Start(withCache bool) error {
}
// generate error file
filename := filepath.Join(dirAbs, "vars.go")
text, err := util.LoadTemplate(category, modelTemplateFile, template.Error)
text, err := util.LoadTemplate(category, errTemplateFile, template.Error)
if err != nil {
return err
}