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