46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
|
|
"git.5iot.com/iotlcm-public/iotlcm-onelink-mock/internal/controller/gateway"
|
|
"git.5iot.com/iotlcm-public/iotlcm-onelink-mock/internal/service"
|
|
"github.com/gogf/gf/v2/errors/gerror"
|
|
"github.com/gogf/gf/v2/frame/g"
|
|
"github.com/gogf/gf/v2/os/gcmd"
|
|
)
|
|
|
|
var Main = gcmd.Command{
|
|
Name: "main",
|
|
Usage: "main",
|
|
Brief: "start OneLink mock service",
|
|
Func: func(ctx context.Context, parser *gcmd.Parser) error {
|
|
var (
|
|
server = g.Server()
|
|
runtimeLogCapacity = g.Cfg().MustGet(ctx, "runtimeLog.capacity", 500).Int()
|
|
runtimeLogs = service.NewRuntimeLogStore(runtimeLogCapacity)
|
|
databaseLink = g.Cfg().MustGet(ctx, "database.default.link", "sqlite::@file(data/onelink_mock.db)").String()
|
|
)
|
|
if value := os.Getenv("BAFFLE_ADDR"); value != "" {
|
|
server.SetAddr(value)
|
|
}
|
|
if value := os.Getenv("BAFFLE_SQLITE_PATH"); value != "" {
|
|
databaseLink = value
|
|
}
|
|
g.Log().SetWriter(runtimeLogs)
|
|
g.Log().SetWriterColorEnable(false)
|
|
server.Logger().SetWriter(runtimeLogs)
|
|
server.Logger().SetWriterColorEnable(false)
|
|
|
|
mockService, err := service.NewService(databaseLink, runtimeLogs)
|
|
if err != nil {
|
|
return gerror.Wrap(err, "initialize mock service")
|
|
}
|
|
gateway.New(mockService).Register(server)
|
|
g.Log().Infof(ctx, "OneLink mock service listening on %s", server.GetListenedAddress())
|
|
server.Run()
|
|
return nil
|
|
},
|
|
}
|