package main import ( "flag" "net" "google.golang.org/grpc" "google.golang.org/grpc/reflection" "src.dualinventive.com/go/assets-service/config" grpcService "src.dualinventive.com/go/assets-service/grpc" "src.dualinventive.com/go/assets-service/internal/storage/gorm" diConfig "src.dualinventive.com/go/lib/config" "src.dualinventive.com/go/lib/dilog" mtinfo "src.dualinventive.com/go/mtinfo-go" ) var ( // ApplicationName is the name of the application ApplicationName = "assets-service-grpc" //nolint: gochecknoglobals // ApplicationVersion is the version of the application ApplicationVersion = "0.0.0-dev" //nolint: gochecknoglobals c = config.New() //nolint: gochecknoglobals ) func main() { var confFile string flag.StringVar(&confFile, "config", ApplicationName, "Configuration-file name") flag.Parse() logger, err := diConfig.Load(confFile, &c) if err != nil { panic(err) } logger = logger.WithField("protocol", "grpc") logger.WithFields(dilog.Fields{ "app-name": ApplicationName, "app-version": ApplicationVersion, }).Info("starting") lis, err := net.Listen("tcp", ":"+c.GrpcConfig.Port) //nolint:gosec if err != nil { logger.WithError(err).Fatal("error listening on port " + c.GrpcConfig.Port) } logger.WithField("grpc-port", c.GrpcConfig.Port).Info("Serving assets at tcp") mtinfoClient, err := mtinfo.NewClient(mtinfo.GRPC, c.MtinfoClientConfig) if err != nil { logger.WithError(err).Fatal("error creating Mtinfo") } assetRepository, err := gorm.NewAssetRepository(logger, c.DatabaseConfig.Host, c.DatabaseConfig.Port, c.DatabaseConfig.Name, c.DatabaseConfig.User, c.DatabaseConfig.Password) if err != nil { logger.WithError(err).Fatal("error creating AssetRepository") } grpcServer := grpc.NewServer() server, err := grpcService.NewServer(logger, assetRepository, mtinfoClient) if err != nil { logger.WithError(err).Fatal("error creating the server") } grpcService.RegisterAssetsServiceServer(grpcServer, server) // Register reflection service on gRPC server. reflection.Register(grpcServer) if err := grpcServer.Serve(lis); err != nil { logger.WithError(err).Fatal("error starting grpc server") } }