43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package bootstrap
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/go-kratos/kratos/v2/log"
|
|
kratosRegistry "github.com/go-kratos/kratos/v2/registry"
|
|
|
|
"github.com/tx7do/kratos-bootstrap/config"
|
|
"github.com/tx7do/kratos-bootstrap/logger"
|
|
"github.com/tx7do/kratos-bootstrap/registry"
|
|
"github.com/tx7do/kratos-bootstrap/tracer"
|
|
|
|
conf "github.com/tx7do/kratos-bootstrap/api/gen/go/conf/v1"
|
|
)
|
|
|
|
// Bootstrap 应用引导启动
|
|
func Bootstrap(serviceInfo *config.ServiceInfo) (*conf.Bootstrap, log.Logger, kratosRegistry.Registrar) {
|
|
// inject command flags
|
|
Flags := config.NewCommandFlags()
|
|
Flags.Init()
|
|
|
|
var err error
|
|
|
|
// load configs
|
|
if err = config.LoadBootstrapConfig(Flags.Conf); err != nil {
|
|
panic(fmt.Sprintf("load config failed: %v", err))
|
|
}
|
|
|
|
// init logger
|
|
ll := logger.NewLoggerProvider(config.GetBootstrapConfig().Logger, serviceInfo)
|
|
|
|
// init registrar
|
|
reg := registry.NewRegistry(config.GetBootstrapConfig().Registry)
|
|
|
|
// init tracer
|
|
if err = tracer.NewTracerProvider(config.GetBootstrapConfig().Trace, serviceInfo); err != nil {
|
|
panic(fmt.Sprintf("init tracer failed: %v", err))
|
|
}
|
|
|
|
return config.GetBootstrapConfig(), ll, reg
|
|
}
|