ultone/internal/cmd/execute.go

50 lines
1.0 KiB
Go
Raw Normal View History

2024-07-11 16:37:26 +08:00
package cmd
import (
"context"
"ultone/internal/api"
"ultone/internal/controller"
"ultone/internal/database/cache"
"ultone/internal/database/db"
2024-07-26 17:59:02 +08:00
"ultone/internal/log"
2024-07-11 16:37:26 +08:00
"ultone/internal/model"
"ultone/internal/opt"
"ultone/internal/tool"
)
var (
filename string
)
2024-07-26 17:59:02 +08:00
func execute(ctx context.Context) error {
2024-07-11 16:37:26 +08:00
tool.Must(opt.Init(filename))
tool.Must(db.Init(ctx, opt.Cfg.DB.Uri))
2024-07-11 16:37:26 +08:00
tool.Must(cache.Init())
// todo: if elastic search required
//tool.Must(es.Init(ctx, opt.Cfg.ES.Uri))
// 或者使用 https://github.com/olivere/elastic
//tool.Must(elastic.Init(ctx, opt.Cfg.ES.Uri))
2024-07-11 16:37:26 +08:00
// todo: if nebula required
// tool.Must(nebula.Init(ctx, opt.Cfg.Nebula))
tool.Must(model.Init(db.Default.Session()))
2024-07-17 21:31:51 +08:00
tool.Must(controller.Init(ctx))
2024-07-11 16:37:26 +08:00
tool.Must(api.Start(ctx))
2024-07-26 17:59:02 +08:00
// todo: if need some cli operation, should start local unix rpc svc
2024-08-05 17:43:41 +08:00
//tool.Must(unix.Start(ctx))
2024-07-26 17:59:02 +08:00
2024-07-11 16:37:26 +08:00
<-ctx.Done()
2024-07-26 17:59:02 +08:00
log.Warn(ctx, "received quit signal...(2s)")
<-tool.Timeout(2).Done()
2024-07-11 16:37:26 +08:00
return nil
}
2024-07-26 17:59:02 +08:00
func Execute(ctx context.Context) error {
return rootCommand.ExecuteContext(ctx)
}