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