// warroom project main.go package main import ( "context" "flag" "net/http" "repositories.action2quare.com/ayo/gocommon/wshandler" "repositories.action2quare.com/ayo/tavern/core" common "repositories.action2quare.com/ayo/gocommon" "repositories.action2quare.com/ayo/gocommon/logger" ) func main() { if !flag.Parsed() { flag.Parse() } ctx, cancel := context.WithCancel(context.Background()) var config core.TavernConfig if err := common.LoadConfig(&config); err != nil { panic(err) } authcache, err := common.NewAuthCollectionGlobal(ctx, config.MaingateApiToken) if err != nil { panic(err) } wsh := wshandler.NewWebsocketHandler(authcache) if tv, err := core.New(ctx, wsh, &config); err != nil { panic(err) } else { serveMux := http.NewServeMux() wsh.RegisterHandlers(ctx, serveMux, *common.PrefixPtr) tv.RegisterHandlers(ctx, serveMux, *common.PrefixPtr) server := common.NewHTTPServer(serveMux) logger.Println("tavern is started") server.Start() cancel() tv.Destructor() wsh.Destructor() } }