From ed1f9c3ed12f2760c48a1f4fd3ceb9b5262fe65d Mon Sep 17 00:00:00 2001 From: Timo Behrendt Date: Mon, 23 Dec 2024 14:13:29 +0100 Subject: [PATCH] chore: update example and main --- config.example.yaml | 3 ++- main.go | 40 ++++++++++++++++++---------------------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/config.example.yaml b/config.example.yaml index eb37f59..b8fa980 100644 --- a/config.example.yaml +++ b/config.example.yaml @@ -2,7 +2,7 @@ ip_provider: type: plain config: - url: https://ifconfig.me + url: https://api.ipify.org dns_provider: type: ionos config: @@ -20,3 +20,4 @@ domains: - "@" - www check_interval: 0 0 0/6 * * * * +mode: Scheduled diff --git a/main.go b/main.go index 6295be0..477ce94 100644 --- a/main.go +++ b/main.go @@ -2,9 +2,7 @@ package main import ( "fmt" - "time" - "realdnydns/pkg/changeDetector" "realdnydns/pkg/config" "realdnydns/pkg/dnsProvider" ionos "realdnydns/pkg/dnsProvider/ionos" @@ -13,8 +11,7 @@ import ( "realdnydns/pkg/notificationProvider" notificationProviderConsole "realdnydns/pkg/notificationProvider/console" gotify "realdnydns/pkg/notificationProvider/gotify" - - "github.com/go-co-op/gocron" + "realdnydns/pkg/realDynDns" ) func main() { @@ -71,27 +68,26 @@ func main() { panic(err) } default: - // Use default console notification provider notificationProvider = notificationProviderConsole.New() } - changeDetector := changeDetector.New(externalIpProvider, dnsProvider, notificationProvider, configClient.Domains) + rdd := realDynDns.New(externalIpProvider, dnsProvider, notificationProvider, configClient.Domains) - s := gocron.NewScheduler(time.UTC) - s.SingletonMode() - job, err := s.CronWithSeconds(configClient.CheckInterval).DoWithJobDetails(func(job gocron.Job) { - 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 { - panic(err) + switch configClient.Mode { + case config.ScheduledMode: + schedule, job, err := rdd.RunWithSchedule(configClient.CheckInterval) + if err != nil { + panic(err) + } + + fmt.Println("Starting scheduler") + fmt.Println("Next run:", job.NextRun()) + schedule.StartBlocking() + case config.RunOnceMode: + numberOfChanges, err := rdd.RunOnce() + if err != nil { + panic(err) + } + fmt.Println("Number of changes:", numberOfChanges) } - - fmt.Println("Starting scheduler") - fmt.Println("Next run:", job.NextRun()) - s.StartBlocking() }