package main import ( "log" "net" "time" signal_server "git.jeffthecoder.xyz/public/chat-signaling-server/pkg/impl/signal-server" proto "git.jeffthecoder.xyz/public/chat-signaling-server/pkg/proto/signaling" "github.com/spf13/cobra" "google.golang.org/grpc" ) var ( serverAddr string signalSvrOpt signal_server.Options cmd = &cobra.Command{ Run: func(cmd *cobra.Command, args []string) { impl, err := signal_server.New(signalSvrOpt) if err != nil { panic(err) } listener, err := net.Listen("tcp4", serverAddr) if err != nil { panic(err) } grpcServer := grpc.NewServer() proto.RegisterSignalingServer(grpcServer, impl) log.Println("listening on", serverAddr) if err := grpcServer.Serve(listener); err != nil { panic(err) } }, } ) func main() { cmd.Flags().StringVar(&serverAddr, "listen", "0.0.0.0:4444", "") cmd.Flags().StringSliceVar(&signalSvrOpt.RedisServers, "redis-server", []string{"127.0.0.1:6379"}, "") cmd.Flags().IntVar(&signalSvrOpt.RedisDatabase, "redis-db", 0, "") cmd.Flags().StringVar(&signalSvrOpt.RedisKeyPrefix, "redis-key-prefix", "signaling", "") cmd.Flags().Int64Var(&signalSvrOpt.NameRandomSeed, "random-seed", time.Now().Unix(), "") cmd.Execute() }