2024-07-11 16:37:26 +08:00
|
|
|
package cmd
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2025-01-14 00:42:18 -08:00
|
|
|
|
2024-07-11 16:37:26 +08:00
|
|
|
"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"
|
|
|
|
)
|
|
|
|
|
2025-01-14 00:42:18 -08:00
|
|
|
var filename string
|
2024-07-11 16:37:26 +08:00
|
|
|
|
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))
|
2024-09-20 15:14:49 +08:00
|
|
|
tool.Must(db.Init(ctx, opt.Cfg.DB.Uri))
|
2025-01-14 00:42:18 -08:00
|
|
|
tool.Must(cache.Init(ctx, opt.Cfg.Cache.Uri))
|
2024-07-11 16:37:26 +08:00
|
|
|
|
|
|
|
// todo: if elastic search required
|
2025-01-14 00:42:18 -08:00
|
|
|
// tool.Must(es.Init(ctx, opt.Cfg.ES.Uri))
|
2024-09-20 15:14:49 +08:00
|
|
|
// 或者使用 https://github.com/olivere/elastic
|
2025-01-14 00:42:18 -08:00
|
|
|
// 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))
|
|
|
|
|
2024-09-20 15:14:49 +08:00
|
|
|
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
|
2025-01-14 00:42:18 -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)
|
|
|
|
}
|