|
|
|
@ -8,57 +8,65 @@
|
|
|
|
package main
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
import (
|
|
|
|
app "oa"
|
|
|
|
"github.com/veypi/OneAuth"
|
|
|
|
"oa/cfg"
|
|
|
|
"github.com/veypi/OneAuth/cfg"
|
|
|
|
"oa/models"
|
|
|
|
"github.com/veypi/OneAuth/models"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/veypi/OneBD/rest"
|
|
|
|
"github.com/veypi/OneBD/rest"
|
|
|
|
"github.com/veypi/utils/flags"
|
|
|
|
"github.com/veypi/utils/flags"
|
|
|
|
"github.com/veypi/utils/logv"
|
|
|
|
"github.com/veypi/utils/logv"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
var CMD = flags.New("app", "the backend server of app")
|
|
|
|
var cmdMain = flags.New("app", "the backend server of app")
|
|
|
|
var cmdCfg = CMD.SubCommand("cfg", "generate cfg file")
|
|
|
|
var cmdCfg = cmdMain.SubCommand("cfg", "generate cfg file")
|
|
|
|
var cmdDB = CMD.SubCommand("db", "database operations")
|
|
|
|
var cmdDB = cmdMain.SubCommand("db", "database operations")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var configFile = cmdMain.String("f", "./dev.yaml", "the config file")
|
|
|
|
|
|
|
|
|
|
|
|
var configFile = CMD.String("f", "./dev.yaml", "the config file")
|
|
|
|
var cliOpts = &struct {
|
|
|
|
|
|
|
|
Host string `json:"host"`
|
|
|
|
|
|
|
|
Port int `json:"port"`
|
|
|
|
|
|
|
|
LoggerPath string `json:"logger_path,omitempty"`
|
|
|
|
|
|
|
|
LoggerLevel string `json:"logger_level,omitempty"`
|
|
|
|
|
|
|
|
Core *cfg.Options
|
|
|
|
|
|
|
|
}{
|
|
|
|
|
|
|
|
Core: cfg.Config,
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
func init() {
|
|
|
|
CMD.StringVar(&cfg.Config.Host, "host", "0.0.0.0", "host")
|
|
|
|
cmdMain.StringVar(&cliOpts.Host, "host", "0.0.0.0", "host")
|
|
|
|
CMD.IntVar(&cfg.Config.Port, "p", 4000, "port")
|
|
|
|
cmdMain.IntVar(&cliOpts.Port, "p", 4000, "port")
|
|
|
|
CMD.StringVar(&cfg.Config.LoggerLevel, "l", "info", "log level")
|
|
|
|
cmdMain.StringVar(&cliOpts.LoggerLevel, "l", "info", "log level")
|
|
|
|
CMD.StringVar(&cfg.Config.DSN, "dsn", "root:123456@tcp(127.0.0.1:3306)/test?charset=utf8&parseTime=True&loc=Local", "data source name")
|
|
|
|
|
|
|
|
CMD.StringVar(&cfg.Config.DB, "db", "mysql", "data source type: mysql/postgre/sqlite")
|
|
|
|
cmdMain.Before = func() error {
|
|
|
|
CMD.Before = func() error {
|
|
|
|
|
|
|
|
flags.LoadCfg(*configFile, cfg.Config)
|
|
|
|
flags.LoadCfg(*configFile, cfg.Config)
|
|
|
|
CMD.Parse()
|
|
|
|
cmdMain.Parse()
|
|
|
|
logv.SetLevel(logv.AssertFuncErr(logv.ParseLevel(cfg.Config.LoggerLevel)))
|
|
|
|
logv.SetLevel(logv.AssertFuncErr(logv.ParseLevel(cliOpts.LoggerLevel)))
|
|
|
|
return nil
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
}
|
|
|
|
CMD.Command = runWeb
|
|
|
|
cmdMain.Command = runWeb
|
|
|
|
cmdCfg.Command = func() error {
|
|
|
|
cmdCfg.Command = func() error {
|
|
|
|
flags.DumpCfg(*configFile, cfg.Config)
|
|
|
|
return flags.DumpCfg(*configFile, cfg.Config)
|
|
|
|
return nil
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
cmdDB.SubCommand("migrate", "migrate database").Command = models.Migrate
|
|
|
|
cmdDB.SubCommand("migrate", "migrate database").Command = models.Migrate
|
|
|
|
cmdDB.SubCommand("drop", "drop database").Command = models.Drop
|
|
|
|
cmdDB.SubCommand("drop", "drop database").Command = models.Drop
|
|
|
|
cmdDB.SubCommand("init", "init db data").Command = models.Init
|
|
|
|
cmdDB.SubCommand("init", "init db data").Command = models.InitDB
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
func main() {
|
|
|
|
CMD.Parse()
|
|
|
|
cmdMain.Parse()
|
|
|
|
err := CMD.Run()
|
|
|
|
err := cmdMain.Run()
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
logv.Warn().Msg(err.Error())
|
|
|
|
logv.Warn().Msg(err.Error())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func runWeb() error {
|
|
|
|
func runWeb() error {
|
|
|
|
server, err := rest.New(rest.WithHost(cfg.Config.Host), rest.WithPort(cfg.Config.Port))
|
|
|
|
server, err := rest.New(rest.WithHost(cliOpts.Host), rest.WithPort(cliOpts.Port))
|
|
|
|
if err != nil {
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
server.SetRouter(app.Router)
|
|
|
|
server.SetRouter(OneAuth.Router)
|
|
|
|
|
|
|
|
server.EnableAI()
|
|
|
|
server.Router().Print()
|
|
|
|
server.Router().Print()
|
|
|
|
return server.Run()
|
|
|
|
return server.Run()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|