diff --git a/engine/load.go b/engine/load.go index 83cbd0b4..0468607c 100644 --- a/engine/load.go +++ b/engine/load.go @@ -7,6 +7,7 @@ import ( "github.com/fatih/color" "github.com/yaoapp/gou/application" + "github.com/yaoapp/gou/process" "github.com/yaoapp/kun/exception" "github.com/yaoapp/yao/aigc" "github.com/yaoapp/yao/api" @@ -184,7 +185,7 @@ func Load(cfg config.Config) (err error) { // Load Neo err = neo.Load(cfg) if err != nil { - printErr(cfg.Mode, "AIGC", err) + printErr(cfg.Mode, "Neo", err) } // Load Custom Widget @@ -217,6 +218,21 @@ func Load(cfg config.Config) (err error) { printErr(cfg.Mode, "Pipe", err) } + // Execute AfterLoad Process if exists + if share.App.AfterLoad != "" { + p, err := process.Of(share.App.AfterLoad, false) + if err != nil { + printErr(cfg.Mode, "AfterLoad", err) + return err + } + + _, err = p.Exec() + if err != nil { + printErr(cfg.Mode, "AfterLoad", err) + return err + } + } + return nil } @@ -392,7 +408,22 @@ func Reload(cfg config.Config) (err error) { // Load Neo err = neo.Load(cfg) if err != nil { - printErr(cfg.Mode, "AIGC", err) + printErr(cfg.Mode, "Neo", err) + } + + // Execute AfterLoad Process if exists + if share.App.AfterLoad != "" { + p, err := process.Of(share.App.AfterLoad, true) + if err != nil { + printErr(cfg.Mode, "AfterLoad", err) + return err + } + + _, err = p.Exec() + if err != nil { + printErr(cfg.Mode, "AfterLoad", err) + return err + } } return err diff --git a/share/types.go b/share/types.go index 925a42a0..85d811dc 100644 --- a/share/types.go +++ b/share/types.go @@ -83,7 +83,8 @@ type AppInfo struct { AdminRoot string `json:"adminRoot,omitempty"` Static Static `json:"public,omitempty"` Optional map[string]interface{} `json:"optional,omitempty"` - Moapi Moapi `json:"moapi"` + Moapi Moapi `json:"moapi,omitempty"` + AfterLoad string `json:"afterLoad,omitempty"` // Process executed after the app is loaded } // Moapi AIGC App Store API