You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.6 KiB
Go
69 lines
1.6 KiB
Go
package gtools
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
|
|
"github.com/xxjwxc/public/mylog"
|
|
|
|
"github.com/xxjwxc/gormt/data/dlg"
|
|
"github.com/xxjwxc/gormt/data/view/model"
|
|
|
|
"github.com/xxjwxc/gormt/data/config"
|
|
|
|
//"github.com/xxjwxc/gormt/data/view/model/genmssql"
|
|
"github.com/xxjwxc/gormt/data/view/model/genmysql"
|
|
//"github.com/xxjwxc/gormt/data/view/model/gensqlite"
|
|
"github.com/xxjwxc/public/tools"
|
|
)
|
|
|
|
// Execute exe the cmd
|
|
func Execute() {
|
|
if config.GetIsGUI() {
|
|
dlg.WinMain()
|
|
} else {
|
|
showCmd()
|
|
}
|
|
}
|
|
|
|
func showCmd() {
|
|
// var tt oauth_db.UserInfoTbl
|
|
// tt.Nickname = "ticket_001"
|
|
// orm.Where("nickname = ?", "ticket_001").Find(&tt)
|
|
// fmt.Println(tt)
|
|
var modeldb model.IModel
|
|
switch config.GetDbInfo().Type {
|
|
case 0: // mysql
|
|
modeldb = genmysql.GetModel()
|
|
//case 1: // sqllite
|
|
// modeldb = gensqlite.GetModel()
|
|
//case 2: //
|
|
// modeldb = genmssql.GetModel()
|
|
}
|
|
if modeldb == nil {
|
|
mylog.Error(fmt.Errorf("modeldb not fund : please check db_info.type (0:mysql , 1:sqlite , 2:mssql) "))
|
|
return
|
|
}
|
|
|
|
pkg := modeldb.GenModel()
|
|
// gencnf.GenOutPut(&pkg)
|
|
// just for test
|
|
// out, _ := json.Marshal(pkg)
|
|
// tools.WriteFile("test.txt", []string{string(out)}, true)
|
|
|
|
list, _ := model.Generate(pkg)
|
|
|
|
for _, v := range list {
|
|
path := config.GetOutDir() + "/" + v.FileName
|
|
tools.WriteFile(path, []string{v.FileCtx}, true)
|
|
|
|
mylog.Info("formatting differs from goimport's:")
|
|
cmd, _ := exec.Command("goimports", "-l", "-w", path).Output()
|
|
mylog.Info(string(cmd))
|
|
|
|
mylog.Info("formatting differs from gofmt's:")
|
|
cmd, _ = exec.Command("gofmt", "-l", "-w", path).Output()
|
|
mylog.Info(string(cmd))
|
|
}
|
|
}
|