Files
acme-dns/main.go
Florian Ritterhoff 34344b1b35 Refactoring (#327)
* chore: enable more linters and fix linter issues

* ci: enable linter checks on all branches and disable recurring checks

recurring linter checks don't make that much sense. The code & linter checks should not change on their own over night ;)

* chore: update packages

* Revert "chore: update packages"

This reverts commit 30250bf28c4b39e9e5b3af012a4e28ab036bf9af.

* chore: manually upgrade some packages
2023-03-07 01:49:06 +02:00

57 lines
1.2 KiB
Go

package main
import (
"flag"
"fmt"
"os"
"syscall"
"github.com/acme-dns/acme-dns/pkg/acmedns"
"github.com/acme-dns/acme-dns/pkg/api"
"github.com/acme-dns/acme-dns/pkg/database"
"github.com/acme-dns/acme-dns/pkg/nameserver"
"go.uber.org/zap"
)
func main() {
syscall.Umask(0077)
configPtr := flag.String("c", "/etc/acme-dns/config.cfg", "config file location")
flag.Parse()
// Read global config
var err error
var logger *zap.Logger
config, usedConfigFile, err := acmedns.ReadConfig(*configPtr)
if err != nil {
fmt.Printf("Error: %s\n", err)
os.Exit(1)
}
logger, err = acmedns.SetupLogging(config)
if err != nil {
fmt.Printf("Could not set up logging: %s\n", err)
os.Exit(1)
}
// Make sure to flush the zap logger buffer before exiting
defer logger.Sync() //nolint:all
sugar := logger.Sugar()
sugar.Infow("Using config file",
"file", usedConfigFile)
sugar.Info("Starting up")
db, err := database.Init(&config, sugar)
// Error channel for servers
errChan := make(chan error, 1)
api := api.Init(&config, db, sugar, errChan)
dnsservers := nameserver.InitAndStart(&config, db, sugar, errChan)
go api.Start(dnsservers)
if err != nil {
sugar.Error(err)
}
for {
err = <-errChan
if err != nil {
sugar.Fatal(err)
}
}
}