[change] print message when loading error

This commit is contained in:
Max 2022-08-22 18:51:44 +08:00
parent 11da4cea39
commit 81ba5668f2
3 changed files with 45 additions and 18 deletions

View file

@ -3,6 +3,7 @@ package api
import (
"fmt"
"path/filepath"
"strings"
"github.com/yaoapp/gou"
"github.com/yaoapp/kun/log"
@ -23,12 +24,15 @@ func LoadFrom(dir string, prefix string) error {
if share.DirNotExists(dir) {
return fmt.Errorf("%s does not exists", dir)
}
messages := []string{}
err := share.Walk(dir, ".http.json", func(root, filename string) {
name := prefix + share.SpecName(root, filename)
content := share.ReadFile(filename)
_, err := gou.LoadAPIReturn(string(content), name, "bearer-jwt")
if err != nil {
log.With(log.F{"root": root, "file": filename}).Error(err.Error())
messages = append(messages, fmt.Sprintf("%s %s", name, err.Error()))
}
})
@ -39,9 +43,14 @@ func LoadFrom(dir string, prefix string) error {
_, err := gou.LoadWebSocketServer(string(content), name)
if err != nil {
log.With(log.F{"root": root, "file": filename}).Error(err.Error())
messages = append(messages, fmt.Sprintf("%s %s", name, err.Error()))
}
})
if len(messages) > 0 {
return fmt.Errorf("%s", strings.Join(messages, ";"))
}
return err
}

View file

@ -4,10 +4,11 @@ import (
"fmt"
"os"
"path/filepath"
"strings"
"github.com/fatih/color"
"github.com/yaoapp/gou"
"github.com/yaoapp/kun/exception"
"github.com/yaoapp/kun/log"
"github.com/yaoapp/yao/api"
"github.com/yaoapp/yao/app"
"github.com/yaoapp/yao/cert"
@ -45,7 +46,7 @@ func Load(cfg config.Config) (err error) {
// Load Certs
err = cert.Load(cfg)
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Cert", err)
}
// 第二步: 建立数据库 & 会话连接
@ -65,83 +66,94 @@ func Load(cfg config.Config) (err error) {
// 第四步: 加载共享库 & JS 处理器
err = share.Load(cfg) // 加载共享库 lib
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Lib", err)
}
err = script.Load(cfg) // 加载JS处理器 script
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Script", err)
}
// 第五步: 加载数据模型等
err = model.Load(cfg) // 加载数据模型 model
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Model", err)
}
err = flow.Load(cfg) // 加载业务逻辑 Flow
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Flow", err)
}
err = store.Load(cfg) // Load stores
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Store", err)
}
err = plugin.Load(cfg) // 加载业务插件 plugin
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Plugin", err)
}
err = table.Load(cfg) // 加载数据表格 table
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Table", err)
}
err = chart.Load(cfg) // 加载分析图表 chart
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Chart", err)
}
err = page.Load(cfg) // 加载页面 page 忽略错误
if err != nil {
printErr(cfg.Mode, "Page", err)
}
page.Load(cfg) // 加载页面 page 忽略错误
importer.Load(cfg) // 加载数据导入 imports
// workflow.Load(cfg) // 加载工作流 workflow
err = api.Load(cfg) // 加载业务接口 API
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "API", err)
}
err = socket.Load(cfg) // Load sockets
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Socket", err)
}
err = websocket.Load(cfg) // Load websockets (client)
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "WebSocket", err)
}
err = task.Load(cfg) // Load tasks
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Task", err)
}
err = schedule.Load(cfg) // Load schedules
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Schedule", err)
}
err = widget.Load(cfg) // Load schedules
err = widget.Load(cfg) // Load widgets
if err != nil {
log.Debug(err.Error())
printErr(cfg.Mode, "Widget", err)
}
return nil
}
func printErr(mode, widget string, err error) {
message := fmt.Sprintf("[%s] %s", widget, err.Error())
if !strings.Contains(message, "does not exists") && mode == "development" {
color.Red(message)
}
}
// Reload 根据配置重新加载 API, FLow, Model, Plugin
func Reload(cfg config.Config) {
gou.APIs = map[string]*gou.API{}

View file

@ -127,15 +127,21 @@ func LoadFrom(dir string, prefix string) error {
return fmt.Errorf("%s does not exists", dir)
}
messages := []string{}
err := share.Walk(dir, ".json", func(root, filename string) {
name := share.SpecName(root, filename)
content := share.ReadFile(filename)
_, err := LoadTable(string(content), name)
if err != nil {
log.With(log.F{"root": root, "file": filename}).Error(err.Error())
messages = append(messages, fmt.Sprintf("%s %s", name, err.Error()))
}
})
if len(messages) > 0 {
return fmt.Errorf("%s", strings.Join(messages, ";"))
}
return err
}