diff --git a/main.go b/main.go index a010529..e599bbd 100644 --- a/main.go +++ b/main.go @@ -39,39 +39,64 @@ func main() { var externalIpProvider externalIpProvider.ExternalIpProvider switch configClient.ExternalIPProvider.Type { case "plain": + logger.Info("Using plain external IP provider", slog.String("external_ip_provider", "plain")) + var plainConfig plainExternalIpProvider.PlainExternalIpProviderConfig err := configClient.ExternalIPProvider.ProviderConfig.Decode(&plainConfig) if err != nil { + logger.Error("Failed to create config", + slog.String("external_ip_provider", "plain"), + slog.String("error", err.Error()), + ) panic(err) } externalIpProvider, err = plainExternalIpProvider.New(plainConfig) if err != nil { + logger.Error("Failed to create plain external IP provider", + slog.String("external_ip_provider", "plain"), + slog.String("error", err.Error()), + ) panic(err) } default: + logger.Error("Unknown external IP provider", slog.String("external_ip_provider", configClient.ExternalIPProvider.Type)) panic(fmt.Errorf("unknown external IP provider: %s", configClient.ExternalIPProvider.Type)) } var dnsProvider dnsProvider.DNSProvider switch configClient.DNSProvider.Type { case "ionos": + logger.Info("Using IONOS DNS provider", slog.String("dns_provider", "ionos")) + var ionosConfig ionos.IONOSConfig err := configClient.DNSProvider.ProviderConfig.Decode(&ionosConfig) if err != nil { + logger.Error("Failed to create IONOS DNS provider", + slog.String("dns_provider", "ionos"), + slog.String("error", err.Error()), + ) panic(err) } + dnsProvider, err = ionos.NewIonos(&ionosConfig) if err != nil { + logger.Error("Failed to create IONOS DNS provider", + slog.String("dns_provider", "ionos"), + slog.String("error", err.Error()), + ) panic(err) } default: + logger.Error("Unknown DNS provider", slog.String("dns_provider", configClient.DNSProvider.Type)) panic(fmt.Errorf("unknown DNS provider: %s", configClient.DNSProvider.Type)) } var notificationProvider notificationProvider.NotificationProvider switch configClient.NotificationProvider.Type { case "gotify": + logger.Info("Using Gotify notification provider", slog.String("notification_provider", "gotify")) + var gotifyConfig gotify.NotificationProviderImplGotifyConfig err := configClient.NotificationProvider.ProviderConfig.Decode(&gotifyConfig) if err != nil { @@ -80,9 +105,15 @@ func main() { notificationProvider, err = gotify.New(gotifyConfig) if err != nil { + logger.Error("Failed to create Gotify notification provider", + slog.String("notification_provider", "gotify"), + slog.String("error", err.Error()), + ) panic(err) } default: + logger.Info("Using console notification provider", slog.String("notification_provider", "console")) + notificationProvider = notificationProviderConsole.New() }