nutils/main.go
2026-09-02 12:53:50 -03:00

38 lines
855 B
Go

package main
import (
"flag"
"fmt"
"log"
"net/http"
"path/filepath"
)
func main() {
cfgPath := flag.String("c", "nutils.toml", "config file path")
flag.Parse()
cfg, err := LoadConfig(*cfgPath)
if err != nil {
log.Fatalf("config: %v", err)
}
geo, err := InitGeo(&GeoConfig{
AsnURL: cfg.Geo.DownloadURLAsn,
CityURL: cfg.Geo.DownloadURLCity,
AsnPath: filepath.Join(cfg.Geo.CacheDir, filepath.Base(cfg.Geo.AsnDB)),
CityPath: filepath.Join(cfg.Geo.CacheDir, filepath.Base(cfg.Geo.CityDB)),
})
if err != nil {
log.Fatalf("geo init: %v", err)
}
defer geo.Close()
services := BuildServices(cfg)
if len(services) == 0 {
log.Fatal("no services enabled")
}
fmt.Printf("nutils listening on %s with %d services\n", cfg.Server.Listen, len(services))
log.Fatal(http.ListenAndServe(cfg.Server.Listen, Handle(services, geo)))
}