package main import ( "fmt" "goseg/config" "goseg/ws" "log/slog" "net/http" "os" "github.com/gorilla/mux" ) var ( logger = slog.New(slog.NewJSONHandler(os.Stdout, nil)) ) func main() { for _, arg := range os.Args[1:] { // trigger this with `./groundseg dev` if arg == "dev" { logger.Info("Starting GroundSeg in debug mode") } } logger.Info("Starting GroundSeg") logger.Info("Urbit is love <3") // global SysConfig var is managed through config package conf := config.Conf() internetAvailable := config.NetCheck("1.1.1.1:53") availMsg := fmt.Sprintf("Internet available: %t", internetAvailable) logger.Info(availMsg) // async operation to retrieve version info versionUpdateChannel := make(chan bool) if conf.UpdateMode == "auto" { go func() { _, versionUpdate := config.CheckVersion() if versionUpdate { logger.Info("Version info retrieved") } versionUpdateChannel <- versionUpdate }() } // just making sure we can parse (debug) var pierList string for _, pier := range conf.Piers { pierList = pierList + ", " + pier } logger.Info(pierList) // block until returns (debug) <-versionUpdateChannel r := mux.NewRouter() r.HandleFunc("/ws", ws.WsHandler) http.ListenAndServe(":3000", nil) }