chore: update example and main
All checks were successful
CI / test (pull_request) Successful in 1m3s

This commit is contained in:
2024-12-23 14:13:29 +01:00
parent 9478149a20
commit ed1f9c3ed1
2 changed files with 20 additions and 23 deletions

View File

@@ -2,7 +2,7 @@
ip_provider: ip_provider:
type: plain type: plain
config: config:
url: https://ifconfig.me url: https://api.ipify.org
dns_provider: dns_provider:
type: ionos type: ionos
config: config:
@@ -20,3 +20,4 @@ domains:
- "@" - "@"
- www - www
check_interval: 0 0 0/6 * * * * check_interval: 0 0 0/6 * * * *
mode: Scheduled

30
main.go
View File

@@ -2,9 +2,7 @@ package main
import ( import (
"fmt" "fmt"
"time"
"realdnydns/pkg/changeDetector"
"realdnydns/pkg/config" "realdnydns/pkg/config"
"realdnydns/pkg/dnsProvider" "realdnydns/pkg/dnsProvider"
ionos "realdnydns/pkg/dnsProvider/ionos" ionos "realdnydns/pkg/dnsProvider/ionos"
@@ -13,8 +11,7 @@ import (
"realdnydns/pkg/notificationProvider" "realdnydns/pkg/notificationProvider"
notificationProviderConsole "realdnydns/pkg/notificationProvider/console" notificationProviderConsole "realdnydns/pkg/notificationProvider/console"
gotify "realdnydns/pkg/notificationProvider/gotify" gotify "realdnydns/pkg/notificationProvider/gotify"
"realdnydns/pkg/realDynDns"
"github.com/go-co-op/gocron"
) )
func main() { func main() {
@@ -71,27 +68,26 @@ func main() {
panic(err) panic(err)
} }
default: default:
// Use default console notification provider
notificationProvider = notificationProviderConsole.New() notificationProvider = notificationProviderConsole.New()
} }
changeDetector := changeDetector.New(externalIpProvider, dnsProvider, notificationProvider, configClient.Domains) rdd := realDynDns.New(externalIpProvider, dnsProvider, notificationProvider, configClient.Domains)
s := gocron.NewScheduler(time.UTC) switch configClient.Mode {
s.SingletonMode() case config.ScheduledMode:
job, err := s.CronWithSeconds(configClient.CheckInterval).DoWithJobDetails(func(job gocron.Job) { schedule, job, err := rdd.RunWithSchedule(configClient.CheckInterval)
numberChanged, err := changeDetector.DetectAndApplyChanges()
if err != nil {
panic(err)
}
fmt.Printf("Number of changes: %d\n", numberChanged)
fmt.Println("Next run:", job.NextRun())
})
if err != nil { if err != nil {
panic(err) panic(err)
} }
fmt.Println("Starting scheduler") fmt.Println("Starting scheduler")
fmt.Println("Next run:", job.NextRun()) fmt.Println("Next run:", job.NextRun())
s.StartBlocking() schedule.StartBlocking()
case config.RunOnceMode:
numberOfChanges, err := rdd.RunOnce()
if err != nil {
panic(err)
}
fmt.Println("Number of changes:", numberOfChanges)
}
} }