| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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))
- devMode = false
- )
- func main() {
- for _, arg := range os.Args[1:] {
- // trigger this with `./groundseg dev`
- if arg == "dev" {
- logger.Info("Starting GroundSeg in debug mode")
- devMode = true
- }
- }
- 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", r)
- }
|