-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.go
49 lines (40 loc) · 1002 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package main
import (
"flag"
"fmt"
"os"
"time"
log "github.com/sirupsen/logrus"
"sigs.k8s.io/external-dns/provider/webhook"
"github.com/zekker6/external-dns-adguard-provider/adguardhome"
)
var (
dryRun = flag.Bool("dry-run", false, "Do not apply changes, just print them")
logLevel = flag.String("log-level", "info", "Log level (debug, info, error)")
)
func main() {
flag.Parse()
log.SetFormatter(&log.JSONFormatter{})
switch *logLevel {
case "debug":
log.SetLevel(log.DebugLevel)
case "info":
log.SetLevel(log.InfoLevel)
case "error":
log.SetLevel(log.ErrorLevel)
default:
fmt.Printf("Invalid log level: %s", *logLevel)
os.Exit(1)
}
p, err := adguardhome.NewAdguardHomeProvider(*dryRun)
if err != nil {
log.WithError(err).Fatal("Failed to create AdguardHomeProvider")
os.Exit(1)
}
st := make(chan struct{})
go func() {
<-st
log.Info("AdguardHomeProvider started on :8888")
}()
webhook.StartHTTPApi(p, st, 10*time.Second, 10*time.Second, ":8888")
}