Files
iotlcm/onelink-mock/internal/cmd/cmd.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
},
}