You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

50 lines
1.1 KiB

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)
}
}()
}