package main import ( "sig-pub/internal/sig" "sig-pub/pkg/config" "sig-pub/pkg/grpc/discovery" "sig-pub/pkg/grpc/generic" "sig-pub/pkg/utils/exit" clientv3 "go.etcd.io/etcd/client/v3" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" ) func main() { defer exit.Await() // load config conf := config.MustLoadConfig(new(config.Configuration), "config/config.toml") // etcd discovery etcdClient, err := clientv3.New(conf.Etcd) if err != nil { panic(err) } exit.AddHook(func() { _ = etcdClient.Close() }, exit.WithOrderTail()) dis := discovery.NewEtcdDiscovery(etcdClient) resolver, err := dis.Resolver() if err != nil { panic(err) } gpcGenericClientFactory := generic.NewGpcGenericClientFactory( discovery.EtcdSchema, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithResolvers(resolver), ) if err := gpcGenericClientFactory.Init(); err != nil { panic(err) } sigServer := sig.NewSigServer(gpcGenericClientFactory) if err := sigServer.Init(); err != nil { panic(err) } go func() { if err := sigServer.Run(":7001"); err != nil { panic(err) } }() }