Files
Pengzhan Hao d6e129179c Create scaffolding of ddl-simulator
Implement global server as control plane

Implement device to get their info from global server and connect each
others
2024-12-17 07:31:18 +00:00

52 lines
1.0 KiB
Go

package main
import (
"flag"
"fmt"
"net"
"os"
"os/signal"
"syscall"
"git.pengzhan.dev/ddp-simulator/pkg/env"
"git.pengzhan.dev/ddp-simulator/pkg/global"
pb "git.pengzhan.dev/ddp-simulator/proto"
log "github.com/sirupsen/logrus"
"google.golang.org/grpc"
)
var (
ip = flag.String("ip", "0.0.0.0", "The global server ip")
port = flag.Int("port", 3200, "The global server port")
configPath = flag.String("config-path", "", "Config file path")
)
func init() {
flag.Parse()
log.SetOutput(os.Stdout)
log.SetLevel(log.TraceLevel)
// log.SetReportCaller(true)
}
func main() {
lis, err := net.Listen(env.PROTOCOL, fmt.Sprintf("%s:%d", *ip, *port))
if err != nil {
log.Fatalf("failed to listen: %v", err)
}
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
go func() {
<-c
os.Exit(1)
}()
s := grpc.NewServer()
g := global.NewGlobalServer(*configPath)
pb.RegisterGlobalServiceServer(s, g)
if err := s.Serve(lis); err != nil {
log.Fatalf("failed to serve: %v", err)
}
}