check / check (push) Successful in 1m17s
The Dockerfile builder stage takes ARG VERSION (default `dev`) and passes it to `make build` on the command line, which overrides the Makefile's `git describe` default. script/docker computes the version from `git describe` on the host and passes it as --build-arg VERSION, because .dockerignore leaves .git out of the build context and `git describe` inside the build only ever produced `dev`. A build that passes no argument, such as script/cibuild, still reports `dev`. `logger.Identify`, which logs `starting` with the version, was never called; `main` now calls it first, so the version is in the startup log. Model: opus-5-5
70 lines
1.6 KiB
Go
70 lines
1.6 KiB
Go
// Package main is the entry point for dnswatcher.
|
|
package main
|
|
|
|
import (
|
|
"go.uber.org/fx"
|
|
|
|
"sneak.berlin/go/dnswatcher/internal/config"
|
|
"sneak.berlin/go/dnswatcher/internal/globals"
|
|
"sneak.berlin/go/dnswatcher/internal/handlers"
|
|
"sneak.berlin/go/dnswatcher/internal/healthcheck"
|
|
"sneak.berlin/go/dnswatcher/internal/logger"
|
|
"sneak.berlin/go/dnswatcher/internal/middleware"
|
|
"sneak.berlin/go/dnswatcher/internal/notify"
|
|
"sneak.berlin/go/dnswatcher/internal/portcheck"
|
|
"sneak.berlin/go/dnswatcher/internal/resolver"
|
|
"sneak.berlin/go/dnswatcher/internal/server"
|
|
"sneak.berlin/go/dnswatcher/internal/state"
|
|
"sneak.berlin/go/dnswatcher/internal/tlscheck"
|
|
"sneak.berlin/go/dnswatcher/internal/watcher"
|
|
|
|
_ "github.com/joho/godotenv/autoload"
|
|
)
|
|
|
|
// Build-time variables injected by linker flags (-ldflags).
|
|
//
|
|
//nolint:gochecknoglobals // build-time variables
|
|
var (
|
|
Appname = "dnswatcher"
|
|
Version string
|
|
)
|
|
|
|
func main() {
|
|
globals.SetAppname(Appname)
|
|
globals.SetVersion(Version)
|
|
|
|
fx.New(
|
|
fx.Provide(
|
|
globals.New,
|
|
logger.New,
|
|
config.New,
|
|
state.New,
|
|
healthcheck.New,
|
|
resolver.New,
|
|
portcheck.New,
|
|
tlscheck.New,
|
|
notify.New,
|
|
watcher.New,
|
|
middleware.New,
|
|
handlers.New,
|
|
server.New,
|
|
),
|
|
fx.Provide(
|
|
func(r *resolver.Resolver) watcher.DNSResolver {
|
|
return r
|
|
},
|
|
func(p *portcheck.Checker) watcher.PortChecker {
|
|
return p
|
|
},
|
|
func(t *tlscheck.Checker) watcher.TLSChecker {
|
|
return t
|
|
},
|
|
func(n *notify.Service) watcher.Notifier {
|
|
return n
|
|
},
|
|
),
|
|
fx.Invoke(func(l *logger.Logger) { l.Identify() }),
|
|
fx.Invoke(func(*server.Server, *watcher.Watcher) {}),
|
|
).Run()
|
|
}
|