37 lines
989 B
Go
37 lines
989 B
Go
package builtin
|
|
|
|
import (
|
|
"github.com/Wikid82/charon/backend/internal/logger"
|
|
"github.com/Wikid82/charon/backend/pkg/dnsprovider"
|
|
)
|
|
|
|
// init automatically registers all built-in DNS provider plugins when the package is imported.
|
|
func init() {
|
|
providers := []dnsprovider.ProviderPlugin{
|
|
&CloudflareProvider{},
|
|
&Route53Provider{},
|
|
&DigitalOceanProvider{},
|
|
&GoogleCloudDNSProvider{},
|
|
&AzureProvider{},
|
|
&NamecheapProvider{},
|
|
&GoDaddyProvider{},
|
|
&HetznerProvider{},
|
|
&VultrProvider{},
|
|
&DNSimpleProvider{},
|
|
}
|
|
|
|
for _, provider := range providers {
|
|
if err := provider.Init(); err != nil {
|
|
logger.Log().WithError(err).Warnf("Failed to initialize built-in provider: %s", provider.Type())
|
|
continue
|
|
}
|
|
|
|
if err := dnsprovider.Global().Register(provider); err != nil {
|
|
logger.Log().WithError(err).Warnf("Failed to register built-in provider: %s", provider.Type())
|
|
continue
|
|
}
|
|
|
|
logger.Log().Debugf("Registered built-in DNS provider: %s", provider.Type())
|
|
}
|
|
}
|