package main import ( "log" "net" "strings" gamelangBingopb "git.alfi.li/gamelang/protobuf/gamelang-bingo" bm "git.alfi.li/gamelang/systems/bingomanager" "google.golang.org/grpc" gcfg "gopkg.in/gcfg.v1" ) type Config struct { Grpc struct { Listen string // ip:port } Kafka struct { Enabled bool Broker string } } func main() { var config Config err := gcfg.ReadFileInto(&config, "config") if err != nil { log.Fatal(err) } log.Print("config read") log.Printf("%+v", config) // init bingomanager brokers := []string{} if config.Kafka.Enabled { brokers = strings.Split(config.Kafka.Broker, ",") } bingomanager := bm.NewBingoManager(brokers) log.Print("bingomanager initialized") // init GrpcServer lis, err := net.Listen("tcp", config.Grpc.Listen) if err != nil { log.Fatalf("failed to listen: %v", err) } grpcServer := grpc.NewServer() gamelangBingopb.RegisterBingoServiceServer(grpcServer, bm.NewBingoServer(bingomanager)) grpcServer.Serve(lis) }