// Package main is the entry point for netwatch-server. package main import ( "fmt" "os" "sneak.berlin/go/netwatch/internal/config" "sneak.berlin/go/netwatch/internal/globals" "sneak.berlin/go/netwatch/internal/handlers" "sneak.berlin/go/netwatch/internal/healthcheck" "sneak.berlin/go/netwatch/internal/logger" "sneak.berlin/go/netwatch/internal/middleware" "sneak.berlin/go/netwatch/internal/reportbuf" "sneak.berlin/go/netwatch/internal/server" "go.uber.org/fx" ) //nolint:gochecknoglobals // set via ldflags at build time var ( Appname = "netwatch-server" Version string Buildarch string ) func main() { // "netwatch-server check-cidr CIDR" exits 1, with the error, if // this server would refuse CIDR in its TRUSTED_PROXIES. // bin/entrypoint.sh runs it on each entry it gives nginx. if len(os.Args) == 3 && os.Args[1] == "check-cidr" { _, err := middleware.ParseTrustedProxies(os.Args[2:]) if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } return } globals.Appname = Appname globals.Version = Version globals.Buildarch = Buildarch fx.New( fx.Provide( config.New, globals.New, handlers.New, healthcheck.New, logger.New, middleware.New, reportbuf.New, server.New, ), fx.Invoke(func(*server.Server) {}), ).Run() }