With libdnsfactory
, you can create libdns providers by name.
This allows you to support all providers in a dynamic way. For example, if you want to let the user decide which provider to use with which configuration.
The factory and docs are generated from the provider repositories.
go get -u github.com/matthiasng/libdnsfactory
package main
import (
"fmt"
"github.com/matthiasng/libdnsfactory"
)
func main() {
name := "hetzner"
configMap := map[string]string{
"AuthAPIToken": "<your token>",
}
provider, err := libdnsfactory.NewProvider(name, configMap)
if err != nil {
panic(err)
}
records, err := provider.AppendRecords(...)
if err != nil {
panic(err)
}
fmt.Println(records)
}
To update an existing provider or add a new one, run go get -u github.com/libdns/...
and go run ./generate
.