chore: Update engine.Load calls with additional options

This commit is contained in:
Max 2024-05-05 17:54:32 +08:00
parent 5a719b6469
commit 9faf8f802f
16 changed files with 39 additions and 28 deletions

View file

@ -57,7 +57,7 @@ var dumpCmd = &cobra.Command{
}
// Load model
err = engine.Load(config.Conf)
err = engine.Load(config.Conf, engine.LoadOption{Action: "dump"})
if err != nil {
fmt.Println(color.RedString(L("Fatal: %s"), err.Error()))
os.Exit(1)

View file

@ -36,7 +36,7 @@ var migrateCmd = &cobra.Command{
}
// 加载数据模型
err := engine.Load(config.Conf)
err := engine.Load(config.Conf, engine.LoadOption{Action: "migrate"})
if err != nil {
fmt.Println(color.RedString(L("Fatal: %s"), err.Error()))
os.Exit(1)

View file

@ -59,7 +59,7 @@ var restoreCmd = &cobra.Command{
})
// 加载数据模型
err = engine.Load(config.Conf)
err = engine.Load(config.Conf, engine.LoadOption{Action: "restore"})
if err != nil {
fmt.Println(color.RedString(L("Fatal: %s"), err.Error()))
os.Exit(1)

View file

@ -56,7 +56,7 @@ var runCmd = &cobra.Command{
return
}
err := engine.Load(cfg)
err := engine.Load(cfg, engine.LoadOption{Action: "run"})
if err != nil {
if !runSilent {
color.Red(L("Engine: %s\n"), err.Error())

View file

@ -32,7 +32,7 @@ var socketCmd = &cobra.Command{
Boot()
cfg := config.Conf
cfg.Session.IsCLI = true
engine.Load(cfg)
engine.Load(cfg, engine.LoadOption{Action: "socket"})
if len(args) < 1 {
fmt.Println(color.RedString(L("Not enough arguments")))
fmt.Println(color.WhiteString(share.BUILDNAME + " help"))

View file

@ -68,7 +68,7 @@ var startCmd = &cobra.Command{
}
// load the application engine
err := engine.Load(config.Conf)
err := engine.Load(config.Conf, engine.LoadOption{Action: "start"})
if err != nil {
fmt.Println(color.RedString(L("Load: %s"), err.Error()))
os.Exit(1)

View file

@ -43,7 +43,7 @@ var RunCmd = &cobra.Command{
return
}
err := engine.Load(cfg)
err := engine.Load(cfg, engine.LoadOption{Action: "studio.run"})
if err != nil {
fmt.Println(color.RedString(L("Engine: %s"), err.Error()))
}

View file

@ -30,7 +30,7 @@ var BuildCmd = &cobra.Command{
Boot()
cfg := config.Conf
err := engine.Load(cfg)
err := engine.Load(cfg, engine.LoadOption{Action: "sui.build"})
if err != nil {
fmt.Fprintln(os.Stderr, color.RedString(err.Error()))
return

View file

@ -40,7 +40,7 @@ var WatchCmd = &cobra.Command{
Boot()
cfg := config.Conf
err := engine.Load(cfg)
err := engine.Load(cfg, engine.LoadOption{Action: "sui.watch"})
if err != nil {
fmt.Fprintln(os.Stderr, color.RedString(err.Error()))
return

View file

@ -39,8 +39,15 @@ import (
"github.com/yaoapp/yao/widgets"
)
// LoadOption the load option
type LoadOption struct {
Action string `json:"action"`
IgnoredAfterLoad bool `json:"ignoredAfterLoad"`
IsReload bool `json:"reload"`
}
// Load application engine
func Load(cfg config.Config) (err error) {
func Load(cfg config.Config, options LoadOption) (err error) {
defer func() { err = exception.Catch(recover()) }()
exception.Mode = cfg.Mode
@ -219,8 +226,8 @@ func Load(cfg config.Config) (err error) {
}
// Execute AfterLoad Process if exists
if share.App.AfterLoad != "" {
p, err := process.Of(share.App.AfterLoad, false)
if share.App.AfterLoad != "" && !options.IgnoredAfterLoad {
p, err := process.Of(share.App.AfterLoad, options)
if err != nil {
printErr(cfg.Mode, "AfterLoad", err)
return err
@ -275,7 +282,7 @@ func Unload() (err error) {
}
// Reload the application engine
func Reload(cfg config.Config) (err error) {
func Reload(cfg config.Config, options LoadOption) (err error) {
defer func() { err = exception.Catch(recover()) }()
exception.Mode = cfg.Mode
@ -412,8 +419,9 @@ func Reload(cfg config.Config) (err error) {
}
// Execute AfterLoad Process if exists
if share.App.AfterLoad != "" {
p, err := process.Of(share.App.AfterLoad, true)
if share.App.AfterLoad != "" && !options.IgnoredAfterLoad {
options.IsReload = true
p, err := process.Of(share.App.AfterLoad, options)
if err != nil {
printErr(cfg.Mode, "AfterLoad", err)
return err
@ -430,12 +438,12 @@ func Reload(cfg config.Config) (err error) {
}
// Restart the application engine
func Restart(cfg config.Config) error {
func Restart(cfg config.Config, options LoadOption) error {
err := Unload()
if err != nil {
return err
}
return Load(cfg)
return Load(cfg, options)
}
// loadApp load the application from bindata / pkg / disk

View file

@ -13,17 +13,17 @@ import (
func TestLoad(t *testing.T) {
defer Unload()
err := Load(config.Conf)
err := Load(config.Conf, LoadOption{})
assert.Nil(t, err)
assert.Greater(t, len(api.APIs), 0)
}
func TestReload(t *testing.T) {
defer Unload()
err := Load(config.Conf)
err := Load(config.Conf, LoadOption{})
assert.Nil(t, err)
Reload(config.Conf)
Reload(config.Conf, LoadOption{})
assert.Nil(t, err)
assert.Greater(t, len(api.APIs), 0)
}
@ -41,7 +41,7 @@ func TestLoadYaz(t *testing.T) {
cfg := config.Conf
cfg.AppSource = file
err = Load(cfg)
err = Load(cfg, LoadOption{})
if err != nil {
t.Fatal(err)
}
@ -62,13 +62,13 @@ func TestReoadYaz(t *testing.T) {
cfg := config.Conf
cfg.AppSource = file
err = Load(cfg)
err = Load(cfg, LoadOption{})
if err != nil {
t.Fatal(err)
}
assert.Greater(t, len(api.APIs), 0)
Reload(cfg)
Reload(cfg, LoadOption{})
assert.Nil(t, err)
assert.Greater(t, len(api.APIs), 0)
}

View file

@ -16,7 +16,7 @@ func TestStartStop(t *testing.T) {
cfg := config.Conf
cfg.Port = 0
err := engine.Load(cfg)
err := engine.Load(cfg, engine.LoadOption{})
if err != nil {
t.Fatal(err)
}

View file

@ -24,7 +24,7 @@ func Watch(srv *http.Server, interrupt chan uint8) (err error) {
}
// Reload
err = engine.Reload(config.Conf)
err = engine.Reload(config.Conf, engine.LoadOption{Action: "watch"})
if err != nil {
fmt.Println(color.RedString("[Watch] Reload: %s", err.Error()))
return

View file

@ -9,7 +9,7 @@ import (
)
func TestWatch(t *testing.T) {
err := engine.Load(config.Conf)
err := engine.Load(config.Conf, engine.LoadOption{})
if err != nil {
t.Fatal(err)
}

View file

@ -86,7 +86,7 @@ func runSetup(c *gin.Context) {
return
}
err = engine.Load(cfg)
err = engine.Load(cfg, engine.LoadOption{})
if err != nil {
c.JSON(500, gin.H{"code": 500, "message": err.Error()})
return

View file

@ -109,7 +109,10 @@ func Install(payload map[string]map[string]string) error {
}
// Load engine
err = engine.Load(cfg)
err = engine.Load(cfg, engine.LoadOption{
Action: "install",
})
if err != nil {
return err
}