package main import ( "flag" "log" "os" "os/signal" "syscall" "linum/internal/server" ) func main() { addr := flag.String("addr", ":5353", "listen address") upstream := flag.String("upstream", "1.1.1.1:53", "upstream dns server") blockfile := flag.String("blocklist", "blocklist.txt", "path to blocklist file") flag.Parse() srv, err := server.New(server.Config{ Addr: *addr, Upstream: *upstream, BlockFile: *blockfile, }) if err != nil { log.Fatalf("create server: %v", err) } go func() { sig := make(chan os.Signal, 1) signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM) <-sig log.Println("shutting down") os.Exit(0) }() log.Fatal(srv.ListenAndServe()) }