39 lines
1.2 KiB
Go
39 lines
1.2 KiB
Go
// SPDX-License-Identifier: GPL-2.0-only
|
|
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
|
|
dnsviz "git.happydns.org/checker-dnsviz/checker"
|
|
"git.happydns.org/checker-dnsviz/internal/collect"
|
|
"git.happydns.org/checker-sdk-go/checker/server"
|
|
)
|
|
|
|
// Version is overridden at link time: -ldflags "-X main.Version=1.2.3".
|
|
var Version = "custom-build"
|
|
|
|
var (
|
|
listenAddr = flag.String("listen", ":8080", "HTTP listen address")
|
|
dnsvizBin = flag.String("dnsviz-bin", "dnsviz", "Path to the dnsviz CLI used by `probe` and `grok`")
|
|
extraProbeArgs = flag.String("extra-probe-args", "-A", "Whitespace-separated arguments appended to `dnsviz probe`")
|
|
trustAnchorsFile = flag.String("trust-anchors-file", "", "BIND DNSKEY file passed to `dnsviz grok -t`. Empty falls back to /usr/share/dnssec-root/trusted-key.key (alpine `dnssec-root` package) when present.")
|
|
)
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
dnsviz.Version = Version
|
|
|
|
col := &collect.Collector{
|
|
Bin: *dnsvizBin,
|
|
ExtraArgs: *extraProbeArgs,
|
|
TrustAnchorsFile: *trustAnchorsFile,
|
|
}
|
|
|
|
srv := server.New(dnsviz.Provider(col.Collect))
|
|
if err := srv.ListenAndServe(*listenAddr); err != nil {
|
|
log.Fatalf("server error: %v", err)
|
|
}
|
|
}
|