From 79f6b35841b865a54678405a5da9c9fb06af048d Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Wed, 10 Jul 2019 19:34:10 +0200 Subject: [PATCH] fix: manage write error during the display of the DNS help. (#923) --- cmd/cmd_dnshelp.go | 51 +- cmd/zz_gen_cmd_dnshelp.go | 1801 +++++++++++++++++----------------- internal/dnsdocs/dns.go.tmpl | 39 +- 3 files changed, 963 insertions(+), 928 deletions(-) diff --git a/cmd/cmd_dnshelp.go b/cmd/cmd_dnshelp.go index 37f4d6c7..33592112 100644 --- a/cmd/cmd_dnshelp.go +++ b/cmd/cmd_dnshelp.go @@ -2,6 +2,7 @@ package cmd import ( "fmt" + "io" "os" "strings" "text/tabwriter" @@ -27,22 +28,46 @@ func dnsHelp(ctx *cli.Context) error { code := ctx.String("code") if code == "" { w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) + ew := &errWriter{w: w} - fmt.Fprintln(w, `Credentials for DNS providers must be passed through environment variables.`) - fmt.Fprintln(w) - fmt.Fprintln(w, `To display the documentation for a DNS providers:`) - fmt.Fprintln(w) - fmt.Fprintln(w, "\t$ lego dnshelp -c code") - fmt.Fprintln(w) - fmt.Fprintln(w, "All DNS codes:") - fmt.Fprintf(w, "\t%s\n", allDNSCodes()) - fmt.Fprintln(w) - fmt.Fprintln(w, "More information: https://go-acme.github.io/lego/dns") + ew.writeln(`Credentials for DNS providers must be passed through environment variables.`) + ew.writeln() + ew.writeln(`To display the documentation for a DNS providers:`) + ew.writeln() + ew.writeln("\t$ lego dnshelp -c code") + ew.writeln() + ew.writeln("All DNS codes:") + ew.writef("\t%s\n", allDNSCodes()) + ew.writeln() + ew.writeln("More information: https://go-acme.github.io/lego/dns") + + if ew.err != nil { + return ew.err + } return w.Flush() } - displayDNSHelp(strings.ToLower(code)) - - return nil + return displayDNSHelp(strings.ToLower(code)) +} + +type errWriter struct { + w io.Writer + err error +} + +func (ew *errWriter) writeln(a ...interface{}) { + if ew.err != nil { + return + } + + _, ew.err = fmt.Fprintln(ew.w, a...) +} + +func (ew *errWriter) writef(format string, a ...interface{}) { + if ew.err != nil { + return + } + + _, ew.err = fmt.Fprintf(ew.w, format, a...) } diff --git a/cmd/zz_gen_cmd_dnshelp.go b/cmd/zz_gen_cmd_dnshelp.go index 8ef2e4d1..dd09423d 100644 --- a/cmd/zz_gen_cmd_dnshelp.go +++ b/cmd/zz_gen_cmd_dnshelp.go @@ -9,8 +9,6 @@ import ( "sort" "strings" "text/tabwriter" - - "github.com/go-acme/lego/log" ) func allDNSCodes() string { @@ -80,1257 +78,1264 @@ func allDNSCodes() string { return strings.Join(providers, ", ") } -func displayDNSHelp(name string) { +func displayDNSHelp(name string) error { w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) + ew := &errWriter{w: w} + switch name { case "acme-dns": // generated from: providers/dns/acmedns/acmedns.toml - fmt.Fprintln(w, `Configuration for Joohoi's ACME-DNS.`) - fmt.Fprintln(w, `Code: 'acme-dns'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Joohoi's ACME-DNS.`) + ew.writeln(`Code: 'acme-dns'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "ACME_DNS_API_BASE": The ACME-DNS API address`) - fmt.Fprintln(w, ` - "ACME_DNS_STORAGE_PATH": The ACME-DNS JSON account data file. A per-domain account will be registered/persisted to this file and used for TXT updates.`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "ACME_DNS_API_BASE": The ACME-DNS API address`) + ew.writeln(` - "ACME_DNS_STORAGE_PATH": The ACME-DNS JSON account data file. A per-domain account will be registered/persisted to this file and used for TXT updates.`) + ew.writeln() - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/acme-dns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/acme-dns`) case "alidns": // generated from: providers/dns/alidns/alidns.toml - fmt.Fprintln(w, `Configuration for Alibaba Cloud DNS.`) - fmt.Fprintln(w, `Code: 'alidns'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Alibaba Cloud DNS.`) + ew.writeln(`Code: 'alidns'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "ALICLOUD_ACCESS_KEY": Access key ID`) - fmt.Fprintln(w, ` - "ALICLOUD_SECRET_KEY": Access Key secret`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "ALICLOUD_ACCESS_KEY": Access key ID`) + ew.writeln(` - "ALICLOUD_SECRET_KEY": Access Key secret`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "ALICLOUD_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "ALICLOUD_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "ALICLOUD_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "ALICLOUD_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "ALICLOUD_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "ALICLOUD_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "ALICLOUD_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "ALICLOUD_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/alidns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/alidns`) case "auroradns": // generated from: providers/dns/auroradns/auroradns.toml - fmt.Fprintln(w, `Configuration for Aurora DNS.`) - fmt.Fprintln(w, `Code: 'auroradns'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Aurora DNS.`) + ew.writeln(`Code: 'auroradns'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "AURORA_ENDPOINT": API endpoint URL`) - fmt.Fprintln(w, ` - "AURORA_KEY": User API key`) - fmt.Fprintln(w, ` - "AURORA_USER_ID": User ID`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "AURORA_ENDPOINT": API endpoint URL`) + ew.writeln(` - "AURORA_KEY": User API key`) + ew.writeln(` - "AURORA_USER_ID": User ID`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "AURORA_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "AURORA_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "AURORA_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "AURORA_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "AURORA_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "AURORA_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/auroradns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/auroradns`) case "azure": // generated from: providers/dns/azure/azure.toml - fmt.Fprintln(w, `Configuration for Azure.`) - fmt.Fprintln(w, `Code: 'azure'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Azure.`) + ew.writeln(`Code: 'azure'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "AZURE_CLIENT_ID": Client ID`) - fmt.Fprintln(w, ` - "AZURE_CLIENT_SECRET": Client secret`) - fmt.Fprintln(w, ` - "AZURE_RESOURCE_GROUP": Resource group`) - fmt.Fprintln(w, ` - "AZURE_SUBSCRIPTION_ID": Subscription ID`) - fmt.Fprintln(w, ` - "AZURE_TENANT_ID": Tenant ID`) - fmt.Fprintln(w, ` - "instance metadata service": If the credentials are **not** set via the environment, then it will attempt to get a bearer token via the [instance metadata service](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service).`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "AZURE_CLIENT_ID": Client ID`) + ew.writeln(` - "AZURE_CLIENT_SECRET": Client secret`) + ew.writeln(` - "AZURE_RESOURCE_GROUP": Resource group`) + ew.writeln(` - "AZURE_SUBSCRIPTION_ID": Subscription ID`) + ew.writeln(` - "AZURE_TENANT_ID": Tenant ID`) + ew.writeln(` - "instance metadata service": If the credentials are **not** set via the environment, then it will attempt to get a bearer token via the [instance metadata service](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/instance-metadata-service).`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "AZURE_METADATA_ENDPOINT": Metadata Service endpoint URL`) - fmt.Fprintln(w, ` - "AZURE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "AZURE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "AZURE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "AZURE_METADATA_ENDPOINT": Metadata Service endpoint URL`) + ew.writeln(` - "AZURE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "AZURE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "AZURE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/azure`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/azure`) case "bindman": // generated from: providers/dns/bindman/bindman.toml - fmt.Fprintln(w, `Configuration for Bindman.`) - fmt.Fprintln(w, `Code: 'bindman'`) - fmt.Fprintln(w, `Since: 'v2.6.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Bindman.`) + ew.writeln(`Code: 'bindman'`) + ew.writeln(`Since: 'v2.6.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "BINDMAN_MANAGER_ADDRESS": The server URL, should have scheme, hostname, and port (if required) of the Bindman-DNS Manager server`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "BINDMAN_MANAGER_ADDRESS": The server URL, should have scheme, hostname, and port (if required) of the Bindman-DNS Manager server`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "BINDMAN_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "BINDMAN_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "BINDMAN_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "BINDMAN_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "BINDMAN_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "BINDMAN_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/bindman`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/bindman`) case "bluecat": // generated from: providers/dns/bluecat/bluecat.toml - fmt.Fprintln(w, `Configuration for Bluecat.`) - fmt.Fprintln(w, `Code: 'bluecat'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Bluecat.`) + ew.writeln(`Code: 'bluecat'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "BLUECAT_CONFIG_NAME": Configuration name`) - fmt.Fprintln(w, ` - "BLUECAT_DNS_VIEW": External DNS View Name`) - fmt.Fprintln(w, ` - "BLUECAT_PASSWORD": API password`) - fmt.Fprintln(w, ` - "BLUECAT_SERVER_URL": The server URL, should have scheme, hostname, and port (if required) of the authoritative Bluecat BAM serve`) - fmt.Fprintln(w, ` - "BLUECAT_USER_NAME": API username`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "BLUECAT_CONFIG_NAME": Configuration name`) + ew.writeln(` - "BLUECAT_DNS_VIEW": External DNS View Name`) + ew.writeln(` - "BLUECAT_PASSWORD": API password`) + ew.writeln(` - "BLUECAT_SERVER_URL": The server URL, should have scheme, hostname, and port (if required) of the authoritative Bluecat BAM serve`) + ew.writeln(` - "BLUECAT_USER_NAME": API username`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "BLUECAT_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "BLUECAT_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "BLUECAT_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "BLUECAT_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "BLUECAT_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "BLUECAT_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "BLUECAT_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "BLUECAT_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/bluecat`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/bluecat`) case "cloudflare": // generated from: providers/dns/cloudflare/cloudflare.toml - fmt.Fprintln(w, `Configuration for Cloudflare.`) - fmt.Fprintln(w, `Code: 'cloudflare'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Cloudflare.`) + ew.writeln(`Code: 'cloudflare'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "CF_API_EMAIL": Account email`) - fmt.Fprintln(w, ` - "CF_API_KEY": API key`) - fmt.Fprintln(w, ` - "CLOUDFLARE_API_KEY": Alias to CLOUDFLARE_API_KEY`) - fmt.Fprintln(w, ` - "CLOUDFLARE_EMAIL": Alias to CF_API_EMAIL`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "CF_API_EMAIL": Account email`) + ew.writeln(` - "CF_API_KEY": API key`) + ew.writeln(` - "CLOUDFLARE_API_KEY": Alias to CLOUDFLARE_API_KEY`) + ew.writeln(` - "CLOUDFLARE_EMAIL": Alias to CF_API_EMAIL`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "CLOUDFLARE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "CLOUDFLARE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "CLOUDFLARE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "CLOUDFLARE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "CLOUDFLARE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "CLOUDFLARE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "CLOUDFLARE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "CLOUDFLARE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/cloudflare`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/cloudflare`) case "cloudns": // generated from: providers/dns/cloudns/cloudns.toml - fmt.Fprintln(w, `Configuration for ClouDNS.`) - fmt.Fprintln(w, `Code: 'cloudns'`) - fmt.Fprintln(w, `Since: 'v2.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for ClouDNS.`) + ew.writeln(`Code: 'cloudns'`) + ew.writeln(`Since: 'v2.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "CLOUDNS_AUTH_ID": The API user ID`) - fmt.Fprintln(w, ` - "CLOUDNS_AUTH_PASSWORD": The password for API user ID`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "CLOUDNS_AUTH_ID": The API user ID`) + ew.writeln(` - "CLOUDNS_AUTH_PASSWORD": The password for API user ID`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "CLOUDNS_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "CLOUDNS_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "CLOUDNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "CLOUDNS_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "CLOUDNS_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "CLOUDNS_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "CLOUDNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "CLOUDNS_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/cloudns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/cloudns`) case "cloudxns": // generated from: providers/dns/cloudxns/cloudxns.toml - fmt.Fprintln(w, `Configuration for CloudXNS.`) - fmt.Fprintln(w, `Code: 'cloudxns'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for CloudXNS.`) + ew.writeln(`Code: 'cloudxns'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "CLOUDXNS_API_KEY": The API key`) - fmt.Fprintln(w, ` - "CLOUDXNS_SECRET_KEY": THe API secret key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "CLOUDXNS_API_KEY": The API key`) + ew.writeln(` - "CLOUDXNS_SECRET_KEY": THe API secret key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "CLOUDXNS_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "CLOUDXNS_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "CLOUDXNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "CLOUDXNS_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "CLOUDXNS_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "CLOUDXNS_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "CLOUDXNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "CLOUDXNS_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/cloudxns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/cloudxns`) case "conoha": // generated from: providers/dns/conoha/conoha.toml - fmt.Fprintln(w, `Configuration for ConoHa.`) - fmt.Fprintln(w, `Code: 'conoha'`) - fmt.Fprintln(w, `Since: 'v1.2.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for ConoHa.`) + ew.writeln(`Code: 'conoha'`) + ew.writeln(`Since: 'v1.2.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "CONOHA_API_PASSWORD": The API password`) - fmt.Fprintln(w, ` - "CONOHA_API_USERNAME": The API username`) - fmt.Fprintln(w, ` - "CONOHA_TENANT_ID": Tenant ID`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "CONOHA_API_PASSWORD": The API password`) + ew.writeln(` - "CONOHA_API_USERNAME": The API username`) + ew.writeln(` - "CONOHA_TENANT_ID": Tenant ID`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "CONOHA_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "CONOHA_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "CONOHA_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "CONOHA_REGION": The region`) - fmt.Fprintln(w, ` - "CONOHA_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "CONOHA_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "CONOHA_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "CONOHA_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "CONOHA_REGION": The region`) + ew.writeln(` - "CONOHA_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/conoha`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/conoha`) case "designate": // generated from: providers/dns/designate/designate.toml - fmt.Fprintln(w, `Configuration for Designate DNSaaS for Openstack.`) - fmt.Fprintln(w, `Code: 'designate'`) - fmt.Fprintln(w, `Since: 'v2.2.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Designate DNSaaS for Openstack.`) + ew.writeln(`Code: 'designate'`) + ew.writeln(`Since: 'v2.2.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "OS_AUTH_URL": Identity endpoint URL`) - fmt.Fprintln(w, ` - "OS_PASSWORD": Password`) - fmt.Fprintln(w, ` - "OS_REGION_NAME": Region name`) - fmt.Fprintln(w, ` - "OS_TENANT_NAME": Tenant name`) - fmt.Fprintln(w, ` - "OS_USERNAME": Username`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "OS_AUTH_URL": Identity endpoint URL`) + ew.writeln(` - "OS_PASSWORD": Password`) + ew.writeln(` - "OS_REGION_NAME": Region name`) + ew.writeln(` - "OS_TENANT_NAME": Tenant name`) + ew.writeln(` - "OS_USERNAME": Username`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DESIGNATE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DESIGNATE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DESIGNATE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DESIGNATE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DESIGNATE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DESIGNATE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/designate`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/designate`) case "digitalocean": // generated from: providers/dns/digitalocean/digitalocean.toml - fmt.Fprintln(w, `Configuration for Digital Ocean.`) - fmt.Fprintln(w, `Code: 'digitalocean'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Digital Ocean.`) + ew.writeln(`Code: 'digitalocean'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "DO_AUTH_TOKEN": Authentication token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "DO_AUTH_TOKEN": Authentication token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DO_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "DO_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DO_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DO_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DO_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "DO_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DO_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DO_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/digitalocean`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/digitalocean`) case "dnsimple": // generated from: providers/dns/dnsimple/dnsimple.toml - fmt.Fprintln(w, `Configuration for DNSimple.`) - fmt.Fprintln(w, `Code: 'dnsimple'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for DNSimple.`) + ew.writeln(`Code: 'dnsimple'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "DNSIMPLE_BASE_URL": API endpoint URL`) - fmt.Fprintln(w, ` - "DNSIMPLE_OAUTH_TOKEN": OAuth token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "DNSIMPLE_BASE_URL": API endpoint URL`) + ew.writeln(` - "DNSIMPLE_OAUTH_TOKEN": OAuth token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DNSIMPLE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DNSIMPLE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DNSIMPLE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DNSIMPLE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DNSIMPLE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DNSIMPLE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/dnsimple`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/dnsimple`) case "dnsmadeeasy": // generated from: providers/dns/dnsmadeeasy/dnsmadeeasy.toml - fmt.Fprintln(w, `Configuration for DNS Made Easy.`) - fmt.Fprintln(w, `Code: 'dnsmadeeasy'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for DNS Made Easy.`) + ew.writeln(`Code: 'dnsmadeeasy'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "DNSMADEEASY_API_KEY": The API key`) - fmt.Fprintln(w, ` - "DNSMADEEASY_API_SECRET": The API Secret key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "DNSMADEEASY_API_KEY": The API key`) + ew.writeln(` - "DNSMADEEASY_API_SECRET": The API Secret key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DNSMADEEASY_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "DNSMADEEASY_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DNSMADEEASY_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DNSMADEEASY_SANDBOX": Activate the sandbox (boolean)`) - fmt.Fprintln(w, ` - "DNSMADEEASY_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DNSMADEEASY_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "DNSMADEEASY_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DNSMADEEASY_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DNSMADEEASY_SANDBOX": Activate the sandbox (boolean)`) + ew.writeln(` - "DNSMADEEASY_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/dnsmadeeasy`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/dnsmadeeasy`) case "dnspod": // generated from: providers/dns/dnspod/dnspod.toml - fmt.Fprintln(w, `Configuration for DNSPod.`) - fmt.Fprintln(w, `Code: 'dnspod'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for DNSPod.`) + ew.writeln(`Code: 'dnspod'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "DNSPOD_API_KEY": The user token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "DNSPOD_API_KEY": The user token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DNSPOD_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "DNSPOD_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DNSPOD_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DNSPOD_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DNSPOD_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "DNSPOD_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DNSPOD_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DNSPOD_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/dnspod`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/dnspod`) case "dode": // generated from: providers/dns/dode/dode.toml - fmt.Fprintln(w, `Configuration for Domain Offensive (do.de).`) - fmt.Fprintln(w, `Code: 'dode'`) - fmt.Fprintln(w, `Since: 'v2.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Domain Offensive (do.de).`) + ew.writeln(`Code: 'dode'`) + ew.writeln(`Since: 'v2.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "DODE_TOKEN": API token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "DODE_TOKEN": API token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DODE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "DODE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DODE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DODE_SEQUENCE_INTERVAL": Interval between iteration`) - fmt.Fprintln(w, ` - "DODE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DODE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "DODE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DODE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DODE_SEQUENCE_INTERVAL": Interval between iteration`) + ew.writeln(` - "DODE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/dode`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/dode`) case "dreamhost": // generated from: providers/dns/dreamhost/dreamhost.toml - fmt.Fprintln(w, `Configuration for DreamHost.`) - fmt.Fprintln(w, `Code: 'dreamhost'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for DreamHost.`) + ew.writeln(`Code: 'dreamhost'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "DREAMHOST_API_KEY": The API key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "DREAMHOST_API_KEY": The API key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DREAMHOST_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "DREAMHOST_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DREAMHOST_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DREAMHOST_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DREAMHOST_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "DREAMHOST_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DREAMHOST_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DREAMHOST_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/dreamhost`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/dreamhost`) case "duckdns": // generated from: providers/dns/duckdns/duckdns.toml - fmt.Fprintln(w, `Configuration for Duck DNS.`) - fmt.Fprintln(w, `Code: 'duckdns'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Duck DNS.`) + ew.writeln(`Code: 'duckdns'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "DUCKDNS_TOKEN": Account token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "DUCKDNS_TOKEN": Account token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DUCKDNS_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "DUCKDNS_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DUCKDNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DUCKDNS_SEQUENCE_INTERVAL": Interval between iteration`) - fmt.Fprintln(w, ` - "DUCKDNS_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DUCKDNS_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "DUCKDNS_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DUCKDNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DUCKDNS_SEQUENCE_INTERVAL": Interval between iteration`) + ew.writeln(` - "DUCKDNS_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/duckdns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/duckdns`) case "dyn": // generated from: providers/dns/dyn/dyn.toml - fmt.Fprintln(w, `Configuration for Dyn.`) - fmt.Fprintln(w, `Code: 'dyn'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Dyn.`) + ew.writeln(`Code: 'dyn'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "DYN_CUSTOMER_NAME": Customer name`) - fmt.Fprintln(w, ` - "DYN_PASSWORD": Paswword`) - fmt.Fprintln(w, ` - "DYN_USER_NAME": User name`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "DYN_CUSTOMER_NAME": Customer name`) + ew.writeln(` - "DYN_PASSWORD": Paswword`) + ew.writeln(` - "DYN_USER_NAME": User name`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "DYN_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "DYN_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "DYN_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "DYN_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "DYN_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "DYN_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "DYN_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "DYN_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/dyn`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/dyn`) case "easydns": // generated from: providers/dns/easydns/easydns.toml - fmt.Fprintln(w, `Configuration for EasyDNS.`) - fmt.Fprintln(w, `Code: 'easydns'`) - fmt.Fprintln(w, `Since: 'v2.6.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for EasyDNS.`) + ew.writeln(`Code: 'easydns'`) + ew.writeln(`Since: 'v2.6.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "EASYDNS_KEY": API Key`) - fmt.Fprintln(w, ` - "EASYDNS_TOKEN": API Token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "EASYDNS_KEY": API Key`) + ew.writeln(` - "EASYDNS_TOKEN": API Token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "EASYDNS_ENDPOINT": The endpoint URL of the API Server`) - fmt.Fprintln(w, ` - "EASYDNS_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "EASYDNS_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "EASYDNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "EASYDNS_SEQUENCE_INTERVAL": Time between sequential requests`) - fmt.Fprintln(w, ` - "EASYDNS_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "EASYDNS_ENDPOINT": The endpoint URL of the API Server`) + ew.writeln(` - "EASYDNS_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "EASYDNS_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "EASYDNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "EASYDNS_SEQUENCE_INTERVAL": Time between sequential requests`) + ew.writeln(` - "EASYDNS_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/easydns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/easydns`) case "exec": // generated from: providers/dns/exec/exec.toml - fmt.Fprintln(w, `Configuration for External program.`) - fmt.Fprintln(w, `Code: 'exec'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for External program.`) + ew.writeln(`Code: 'exec'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/exec`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/exec`) case "exoscale": // generated from: providers/dns/exoscale/exoscale.toml - fmt.Fprintln(w, `Configuration for Exoscale.`) - fmt.Fprintln(w, `Code: 'exoscale'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Exoscale.`) + ew.writeln(`Code: 'exoscale'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "EXOSCALE_API_KEY": API key`) - fmt.Fprintln(w, ` - "EXOSCALE_API_SECRET": API secret`) - fmt.Fprintln(w, ` - "EXOSCALE_ENDPOINT": API endpoint URL`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "EXOSCALE_API_KEY": API key`) + ew.writeln(` - "EXOSCALE_API_SECRET": API secret`) + ew.writeln(` - "EXOSCALE_ENDPOINT": API endpoint URL`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "EXOSCALE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "EXOSCALE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "EXOSCALE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "EXOSCALE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "EXOSCALE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "EXOSCALE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "EXOSCALE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "EXOSCALE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/exoscale`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/exoscale`) case "fastdns": // generated from: providers/dns/fastdns/fastdns.toml - fmt.Fprintln(w, `Configuration for FastDNS.`) - fmt.Fprintln(w, `Code: 'fastdns'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for FastDNS.`) + ew.writeln(`Code: 'fastdns'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "AKAMAI_ACCESS_TOKEN": Access token`) - fmt.Fprintln(w, ` - "AKAMAI_CLIENT_SECRET": Client secret`) - fmt.Fprintln(w, ` - "AKAMAI_CLIENT_TOKEN": Client token`) - fmt.Fprintln(w, ` - "AKAMAI_HOST": API host`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "AKAMAI_ACCESS_TOKEN": Access token`) + ew.writeln(` - "AKAMAI_CLIENT_SECRET": Client secret`) + ew.writeln(` - "AKAMAI_CLIENT_TOKEN": Client token`) + ew.writeln(` - "AKAMAI_HOST": API host`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "AKAMAI_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "AKAMAI_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "AKAMAI_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "AKAMAI_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "AKAMAI_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "AKAMAI_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/fastdns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/fastdns`) case "gandi": // generated from: providers/dns/gandi/gandi.toml - fmt.Fprintln(w, `Configuration for Gandi.`) - fmt.Fprintln(w, `Code: 'gandi'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Gandi.`) + ew.writeln(`Code: 'gandi'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "GANDI_API_KEY": API key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "GANDI_API_KEY": API key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "GANDI_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "GANDI_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "GANDI_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "GANDI_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "GANDI_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "GANDI_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "GANDI_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "GANDI_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/gandi`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/gandi`) case "gandiv5": // generated from: providers/dns/gandiv5/gandiv5.toml - fmt.Fprintln(w, `Configuration for Gandi Live DNS (v5).`) - fmt.Fprintln(w, `Code: 'gandiv5'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Gandi Live DNS (v5).`) + ew.writeln(`Code: 'gandiv5'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "GANDIV5_API_KEY": API key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "GANDIV5_API_KEY": API key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "GANDIV5_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "GANDIV5_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "GANDIV5_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "GANDIV5_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "GANDIV5_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "GANDIV5_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "GANDIV5_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "GANDIV5_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/gandiv5`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/gandiv5`) case "gcloud": // generated from: providers/dns/gcloud/gcloud.toml - fmt.Fprintln(w, `Configuration for Google Cloud.`) - fmt.Fprintln(w, `Code: 'gcloud'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Google Cloud.`) + ew.writeln(`Code: 'gcloud'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "Application Default Credentials": [Documentation](https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application)`) - fmt.Fprintln(w, ` - "GCE_PROJECT": Project name`) - fmt.Fprintln(w, ` - "GCE_SERVICE_ACCOUNT": Account`) - fmt.Fprintln(w, ` - "GCE_SERVICE_ACCOUNT_FILE": Account file path`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "Application Default Credentials": [Documentation](https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application)`) + ew.writeln(` - "GCE_PROJECT": Project name`) + ew.writeln(` - "GCE_SERVICE_ACCOUNT": Account`) + ew.writeln(` - "GCE_SERVICE_ACCOUNT_FILE": Account file path`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "GCE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "GCE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "GCE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "GCE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "GCE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "GCE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/gcloud`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/gcloud`) case "glesys": // generated from: providers/dns/glesys/glesys.toml - fmt.Fprintln(w, `Configuration for Glesys.`) - fmt.Fprintln(w, `Code: 'glesys'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Glesys.`) + ew.writeln(`Code: 'glesys'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "GLESYS_API_KEY": API key`) - fmt.Fprintln(w, ` - "GLESYS_API_USER": API user`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "GLESYS_API_KEY": API key`) + ew.writeln(` - "GLESYS_API_USER": API user`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "GLESYS_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "GLESYS_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "GLESYS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "GLESYS_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "GLESYS_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "GLESYS_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "GLESYS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "GLESYS_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/glesys`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/glesys`) case "godaddy": // generated from: providers/dns/godaddy/godaddy.toml - fmt.Fprintln(w, `Configuration for Go Daddy.`) - fmt.Fprintln(w, `Code: 'godaddy'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Go Daddy.`) + ew.writeln(`Code: 'godaddy'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "GODADDY_API_KEY": API key`) - fmt.Fprintln(w, ` - "GODADDY_API_SECRET": API secret`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "GODADDY_API_KEY": API key`) + ew.writeln(` - "GODADDY_API_SECRET": API secret`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "GODADDY_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "GODADDY_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "GODADDY_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "GODADDY_SEQUENCE_INTERVAL": Interval between iteration`) - fmt.Fprintln(w, ` - "GODADDY_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "GODADDY_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "GODADDY_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "GODADDY_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "GODADDY_SEQUENCE_INTERVAL": Interval between iteration`) + ew.writeln(` - "GODADDY_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/godaddy`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/godaddy`) case "hostingde": // generated from: providers/dns/hostingde/hostingde.toml - fmt.Fprintln(w, `Configuration for Hosting.de.`) - fmt.Fprintln(w, `Code: 'hostingde'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Hosting.de.`) + ew.writeln(`Code: 'hostingde'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "HOSTINGDE_API_KEY": API key`) - fmt.Fprintln(w, ` - "HOSTINGDE_ZONE_NAME": Zone name in ACE format`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "HOSTINGDE_API_KEY": API key`) + ew.writeln(` - "HOSTINGDE_ZONE_NAME": Zone name in ACE format`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "HOSTINGDE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "HOSTINGDE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "HOSTINGDE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "HOSTINGDE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "HOSTINGDE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "HOSTINGDE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "HOSTINGDE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "HOSTINGDE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/hostingde`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/hostingde`) case "httpreq": // generated from: providers/dns/httpreq/httpreq.toml - fmt.Fprintln(w, `Configuration for HTTP request.`) - fmt.Fprintln(w, `Code: 'httpreq'`) - fmt.Fprintln(w, `Since: 'v2.0.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for HTTP request.`) + ew.writeln(`Code: 'httpreq'`) + ew.writeln(`Since: 'v2.0.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "HTTPREQ_ENDPOINT": The URL of the server`) - fmt.Fprintln(w, ` - "HTTPREQ_MODE": 'RAW', none`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "HTTPREQ_ENDPOINT": The URL of the server`) + ew.writeln(` - "HTTPREQ_MODE": 'RAW', none`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "HTTPREQ_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "HTTPREQ_PASSWORD": Basic authentication password`) - fmt.Fprintln(w, ` - "HTTPREQ_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "HTTPREQ_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "HTTPREQ_USERNAME": Basic authentication username`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "HTTPREQ_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "HTTPREQ_PASSWORD": Basic authentication password`) + ew.writeln(` - "HTTPREQ_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "HTTPREQ_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "HTTPREQ_USERNAME": Basic authentication username`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/httpreq`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/httpreq`) case "iij": // generated from: providers/dns/iij/iij.toml - fmt.Fprintln(w, `Configuration for Internet Initiative Japan.`) - fmt.Fprintln(w, `Code: 'iij'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Internet Initiative Japan.`) + ew.writeln(`Code: 'iij'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "IIJ_API_ACCESS_KEY": API access key`) - fmt.Fprintln(w, ` - "IIJ_API_SECRET_KEY": API secret key`) - fmt.Fprintln(w, ` - "IIJ_DO_SERVICE_CODE": DO service code`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "IIJ_API_ACCESS_KEY": API access key`) + ew.writeln(` - "IIJ_API_SECRET_KEY": API secret key`) + ew.writeln(` - "IIJ_DO_SERVICE_CODE": DO service code`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "IIJ_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "IIJ_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "IIJ_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "IIJ_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "IIJ_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "IIJ_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/iij`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/iij`) case "inwx": // generated from: providers/dns/inwx/inwx.toml - fmt.Fprintln(w, `Configuration for INWX.`) - fmt.Fprintln(w, `Code: 'inwx'`) - fmt.Fprintln(w, `Since: 'v2.0.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for INWX.`) + ew.writeln(`Code: 'inwx'`) + ew.writeln(`Since: 'v2.0.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "INWX_PASSWORD": Password`) - fmt.Fprintln(w, ` - "INWX_USERNAME": Username`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "INWX_PASSWORD": Password`) + ew.writeln(` - "INWX_USERNAME": Username`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "INWX_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "INWX_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "INWX_SANDBOX": Activate the sandbox (boolean)`) - fmt.Fprintln(w, ` - "INWX_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "INWX_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "INWX_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "INWX_SANDBOX": Activate the sandbox (boolean)`) + ew.writeln(` - "INWX_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/inwx`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/inwx`) case "joker": // generated from: providers/dns/joker/joker.toml - fmt.Fprintln(w, `Configuration for Joker.`) - fmt.Fprintln(w, `Code: 'joker'`) - fmt.Fprintln(w, `Since: 'v2.6.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Joker.`) + ew.writeln(`Code: 'joker'`) + ew.writeln(`Since: 'v2.6.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "JOKER_API_KEY": API key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "JOKER_API_KEY": API key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "JOKER_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "JOKER_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "JOKER_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "JOKER_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "JOKER_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "JOKER_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "JOKER_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "JOKER_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/joker`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/joker`) case "lightsail": // generated from: providers/dns/lightsail/lightsail.toml - fmt.Fprintln(w, `Configuration for Amazon Lightsail.`) - fmt.Fprintln(w, `Code: 'lightsail'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Amazon Lightsail.`) + ew.writeln(`Code: 'lightsail'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "AWS_ACCESS_KEY_ID": Access key ID`) - fmt.Fprintln(w, ` - "AWS_SECRET_ACCESS_KEY": Secret access key`) - fmt.Fprintln(w, ` - "DNS_ZONE": DNS zone`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "AWS_ACCESS_KEY_ID": Access key ID`) + ew.writeln(` - "AWS_SECRET_ACCESS_KEY": Secret access key`) + ew.writeln(` - "DNS_ZONE": DNS zone`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "LIGHTSAIL_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "LIGHTSAIL_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "LIGHTSAIL_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "LIGHTSAIL_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/lightsail`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/lightsail`) case "linode": // generated from: providers/dns/linode/linode.toml - fmt.Fprintln(w, `Configuration for Linode (deprecated).`) - fmt.Fprintln(w, `Code: 'linode'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Linode (deprecated).`) + ew.writeln(`Code: 'linode'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "LINODE_API_KEY": API key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "LINODE_API_KEY": API key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "LINODE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "LINODE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "LINODE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "LINODE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "LINODE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "LINODE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/linode`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/linode`) case "linodev4": // generated from: providers/dns/linodev4/linodev4.toml - fmt.Fprintln(w, `Configuration for Linode (v4).`) - fmt.Fprintln(w, `Code: 'linodev4'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Linode (v4).`) + ew.writeln(`Code: 'linodev4'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "LINODE_TOKEN": API token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "LINODE_TOKEN": API token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "LINODE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "LINODE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "LINODE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "LINODE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "LINODE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "LINODE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/linodev4`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/linodev4`) case "mydnsjp": // generated from: providers/dns/mydnsjp/mydnsjp.toml - fmt.Fprintln(w, `Configuration for MyDNS.jp.`) - fmt.Fprintln(w, `Code: 'mydnsjp'`) - fmt.Fprintln(w, `Since: 'v1.2.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for MyDNS.jp.`) + ew.writeln(`Code: 'mydnsjp'`) + ew.writeln(`Since: 'v1.2.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "MYDNSJP_MASTER_ID": Master ID`) - fmt.Fprintln(w, ` - "MYDNSJP_PASSWORD": Password`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "MYDNSJP_MASTER_ID": Master ID`) + ew.writeln(` - "MYDNSJP_PASSWORD": Password`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "MYDNSJP_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "MYDNSJP_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "MYDNSJP_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "MYDNSJP_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "MYDNSJP_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "MYDNSJP_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "MYDNSJP_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "MYDNSJP_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/mydnsjp`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/mydnsjp`) case "namecheap": // generated from: providers/dns/namecheap/namecheap.toml - fmt.Fprintln(w, `Configuration for Namecheap.`) - fmt.Fprintln(w, `Code: 'namecheap'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Namecheap.`) + ew.writeln(`Code: 'namecheap'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "NAMECHEAP_API_KEY": API key`) - fmt.Fprintln(w, ` - "NAMECHEAP_API_USER": API user`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "NAMECHEAP_API_KEY": API key`) + ew.writeln(` - "NAMECHEAP_API_USER": API user`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "NAMECHEAP_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "NAMECHEAP_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "NAMECHEAP_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "NAMECHEAP_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "NAMECHEAP_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "NAMECHEAP_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "NAMECHEAP_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "NAMECHEAP_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/namecheap`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/namecheap`) case "namedotcom": // generated from: providers/dns/namedotcom/namedotcom.toml - fmt.Fprintln(w, `Configuration for Name.com.`) - fmt.Fprintln(w, `Code: 'namedotcom'`) - fmt.Fprintln(w, `Since: 'v0.5.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Name.com.`) + ew.writeln(`Code: 'namedotcom'`) + ew.writeln(`Since: 'v0.5.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "NAMECOM_API_TOKEN": API token`) - fmt.Fprintln(w, ` - "NAMECOM_USERNAME": Username`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "NAMECOM_API_TOKEN": API token`) + ew.writeln(` - "NAMECOM_USERNAME": Username`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "NAMECOM_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "NAMECOM_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "NAMECOM_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "NAMECOM_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "NAMECOM_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "NAMECOM_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "NAMECOM_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "NAMECOM_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/namedotcom`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/namedotcom`) case "namesilo": // generated from: providers/dns/namesilo/namesilo.toml - fmt.Fprintln(w, `Configuration for Namesilo.`) - fmt.Fprintln(w, `Code: 'namesilo'`) - fmt.Fprintln(w, `Since: 'v2.7.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Namesilo.`) + ew.writeln(`Code: 'namesilo'`) + ew.writeln(`Since: 'v2.7.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "NAMESILO_API_KEY": Client ID`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "NAMESILO_API_KEY": Client ID`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "NAMESILO_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "NAMESILO_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation, it is better to set larger than 15m`) - fmt.Fprintln(w, ` - "NAMESILO_TTL": The TTL of the TXT record used for the DNS challenge, should be in [3600, 2592000]`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "NAMESILO_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "NAMESILO_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation, it is better to set larger than 15m`) + ew.writeln(` - "NAMESILO_TTL": The TTL of the TXT record used for the DNS challenge, should be in [3600, 2592000]`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/namesilo`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/namesilo`) case "netcup": // generated from: providers/dns/netcup/netcup.toml - fmt.Fprintln(w, `Configuration for Netcup.`) - fmt.Fprintln(w, `Code: 'netcup'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Netcup.`) + ew.writeln(`Code: 'netcup'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "NETCUP_API_KEY": API key`) - fmt.Fprintln(w, ` - "NETCUP_API_PASSWORD": API password`) - fmt.Fprintln(w, ` - "NETCUP_CUSTOMER_NUMBER": Customer number`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "NETCUP_API_KEY": API key`) + ew.writeln(` - "NETCUP_API_PASSWORD": API password`) + ew.writeln(` - "NETCUP_CUSTOMER_NUMBER": Customer number`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "NETCUP_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "NETCUP_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "NETCUP_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "NETCUP_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "NETCUP_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "NETCUP_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "NETCUP_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "NETCUP_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/netcup`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/netcup`) case "nifcloud": // generated from: providers/dns/nifcloud/nifcloud.toml - fmt.Fprintln(w, `Configuration for NIFCloud.`) - fmt.Fprintln(w, `Code: 'nifcloud'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for NIFCloud.`) + ew.writeln(`Code: 'nifcloud'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "NIFCLOUD_ACCESS_KEY_ID": Access key`) - fmt.Fprintln(w, ` - "NIFCLOUD_SECRET_ACCESS_KEY": Secret access key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "NIFCLOUD_ACCESS_KEY_ID": Access key`) + ew.writeln(` - "NIFCLOUD_SECRET_ACCESS_KEY": Secret access key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "NIFCLOUD_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "NIFCLOUD_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "NIFCLOUD_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "NIFCLOUD_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "NIFCLOUD_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "NIFCLOUD_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "NIFCLOUD_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "NIFCLOUD_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/nifcloud`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/nifcloud`) case "ns1": // generated from: providers/dns/ns1/ns1.toml - fmt.Fprintln(w, `Configuration for NS1.`) - fmt.Fprintln(w, `Code: 'ns1'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for NS1.`) + ew.writeln(`Code: 'ns1'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "NS1_API_KEY": API key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "NS1_API_KEY": API key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "NS1_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "NS1_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "NS1_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "NS1_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "NS1_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "NS1_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "NS1_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "NS1_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/ns1`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/ns1`) case "oraclecloud": // generated from: providers/dns/oraclecloud/oraclecloud.toml - fmt.Fprintln(w, `Configuration for Oracle Cloud.`) - fmt.Fprintln(w, `Code: 'oraclecloud'`) - fmt.Fprintln(w, `Since: 'v2.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Oracle Cloud.`) + ew.writeln(`Code: 'oraclecloud'`) + ew.writeln(`Since: 'v2.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "OCI_COMPARTMENT_OCID": Compartment OCID`) - fmt.Fprintln(w, ` - "OCI_PRIVKEY_FILE": Private key file`) - fmt.Fprintln(w, ` - "OCI_PRIVKEY_PASS": Private key password`) - fmt.Fprintln(w, ` - "OCI_PUBKEY_FINGERPRINT": Public key fingerprint`) - fmt.Fprintln(w, ` - "OCI_REGION": Region`) - fmt.Fprintln(w, ` - "OCI_TENANCY_OCID": Tenanct OCID`) - fmt.Fprintln(w, ` - "OCI_USER_OCID": User OCID`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "OCI_COMPARTMENT_OCID": Compartment OCID`) + ew.writeln(` - "OCI_PRIVKEY_FILE": Private key file`) + ew.writeln(` - "OCI_PRIVKEY_PASS": Private key password`) + ew.writeln(` - "OCI_PUBKEY_FINGERPRINT": Public key fingerprint`) + ew.writeln(` - "OCI_REGION": Region`) + ew.writeln(` - "OCI_TENANCY_OCID": Tenanct OCID`) + ew.writeln(` - "OCI_USER_OCID": User OCID`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "OCI_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "OCI_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "OCI_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "OCI_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "OCI_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "OCI_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/oraclecloud`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/oraclecloud`) case "otc": // generated from: providers/dns/otc/otc.toml - fmt.Fprintln(w, `Configuration for Open Telekom Cloud.`) - fmt.Fprintln(w, `Code: 'otc'`) - fmt.Fprintln(w, `Since: 'v0.4.1'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Open Telekom Cloud.`) + ew.writeln(`Code: 'otc'`) + ew.writeln(`Since: 'v0.4.1'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "OTC_DOMAIN_NAME": Domain name`) - fmt.Fprintln(w, ` - "OTC_IDENTITY_ENDPOINT": Identity endpoint URL`) - fmt.Fprintln(w, ` - "OTC_PASSWORD": Password`) - fmt.Fprintln(w, ` - "OTC_PROJECT_NAME": Project name`) - fmt.Fprintln(w, ` - "OTC_USER_NAME": User name`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "OTC_DOMAIN_NAME": Domain name`) + ew.writeln(` - "OTC_IDENTITY_ENDPOINT": Identity endpoint URL`) + ew.writeln(` - "OTC_PASSWORD": Password`) + ew.writeln(` - "OTC_PROJECT_NAME": Project name`) + ew.writeln(` - "OTC_USER_NAME": User name`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "OTC_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "OTC_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "OTC_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "OTC_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "OTC_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "OTC_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "OTC_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "OTC_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/otc`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/otc`) case "ovh": // generated from: providers/dns/ovh/ovh.toml - fmt.Fprintln(w, `Configuration for OVH.`) - fmt.Fprintln(w, `Code: 'ovh'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for OVH.`) + ew.writeln(`Code: 'ovh'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "OVH_APPLICATION_KEY": Application key`) - fmt.Fprintln(w, ` - "OVH_APPLICATION_SECRET": Application secret`) - fmt.Fprintln(w, ` - "OVH_CONSUMER_KEY": Consumer key`) - fmt.Fprintln(w, ` - "OVH_ENDPOINT": Endpoint URL (ovh-eu or ovh-ca)`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "OVH_APPLICATION_KEY": Application key`) + ew.writeln(` - "OVH_APPLICATION_SECRET": Application secret`) + ew.writeln(` - "OVH_CONSUMER_KEY": Consumer key`) + ew.writeln(` - "OVH_ENDPOINT": Endpoint URL (ovh-eu or ovh-ca)`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "OVH_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "OVH_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "OVH_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "OVH_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "OVH_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "OVH_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "OVH_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "OVH_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/ovh`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/ovh`) case "pdns": // generated from: providers/dns/pdns/pdns.toml - fmt.Fprintln(w, `Configuration for PowerDNS.`) - fmt.Fprintln(w, `Code: 'pdns'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for PowerDNS.`) + ew.writeln(`Code: 'pdns'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "PDNS_API_KEY": API key`) - fmt.Fprintln(w, ` - "PDNS_API_URL": API url`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "PDNS_API_KEY": API key`) + ew.writeln(` - "PDNS_API_URL": API url`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "PDNS_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "PDNS_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "PDNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "PDNS_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "PDNS_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "PDNS_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "PDNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "PDNS_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/pdns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/pdns`) case "rackspace": // generated from: providers/dns/rackspace/rackspace.toml - fmt.Fprintln(w, `Configuration for Rackspace.`) - fmt.Fprintln(w, `Code: 'rackspace'`) - fmt.Fprintln(w, `Since: 'v0.4.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Rackspace.`) + ew.writeln(`Code: 'rackspace'`) + ew.writeln(`Since: 'v0.4.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "RACKSPACE_API_KEY": API key`) - fmt.Fprintln(w, ` - "RACKSPACE_USER": API user`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "RACKSPACE_API_KEY": API key`) + ew.writeln(` - "RACKSPACE_USER": API user`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "RACKSPACE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "RACKSPACE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "RACKSPACE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "RACKSPACE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "RACKSPACE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "RACKSPACE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "RACKSPACE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "RACKSPACE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/rackspace`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/rackspace`) case "rfc2136": // generated from: providers/dns/rfc2136/rfc2136.toml - fmt.Fprintln(w, `Configuration for RFC2136.`) - fmt.Fprintln(w, `Code: 'rfc2136'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for RFC2136.`) + ew.writeln(`Code: 'rfc2136'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "RFC2136_NAMESERVER": Network address in the form "host" or "host:port"`) - fmt.Fprintln(w, ` - "RFC2136_TSIG_ALGORITHM": TSIG algorythm. See [miekg/dns#tsig.go](https://github.com/miekg/dns/blob/master/tsig.go) for supported values. To disable TSIG authentication, leave the 'RFC2136_TSIG*' variables unset.`) - fmt.Fprintln(w, ` - "RFC2136_TSIG_KEY": Name of the secret key as defined in DNS server configuration. To disable TSIG authentication, leave the 'RFC2136_TSIG*' variables unset.`) - fmt.Fprintln(w, ` - "RFC2136_TSIG_SECRET": Secret key payload. To disable TSIG authentication, leave the' RFC2136_TSIG*' variables unset.`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "RFC2136_NAMESERVER": Network address in the form "host" or "host:port"`) + ew.writeln(` - "RFC2136_TSIG_ALGORITHM": TSIG algorythm. See [miekg/dns#tsig.go](https://github.com/miekg/dns/blob/master/tsig.go) for supported values. To disable TSIG authentication, leave the 'RFC2136_TSIG*' variables unset.`) + ew.writeln(` - "RFC2136_TSIG_KEY": Name of the secret key as defined in DNS server configuration. To disable TSIG authentication, leave the 'RFC2136_TSIG*' variables unset.`) + ew.writeln(` - "RFC2136_TSIG_SECRET": Secret key payload. To disable TSIG authentication, leave the' RFC2136_TSIG*' variables unset.`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "RFC2136_DNS_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "RFC2136_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "RFC2136_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "RFC2136_SEQUENCE_INTERVAL": Interval between iteration`) - fmt.Fprintln(w, ` - "RFC2136_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "RFC2136_DNS_TIMEOUT": API request timeout`) + ew.writeln(` - "RFC2136_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "RFC2136_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "RFC2136_SEQUENCE_INTERVAL": Interval between iteration`) + ew.writeln(` - "RFC2136_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/rfc2136`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/rfc2136`) case "route53": // generated from: providers/dns/route53/route53.toml - fmt.Fprintln(w, `Configuration for Amazon Route 53.`) - fmt.Fprintln(w, `Code: 'route53'`) - fmt.Fprintln(w, `Since: 'v0.3.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Amazon Route 53.`) + ew.writeln(`Code: 'route53'`) + ew.writeln(`Since: 'v0.3.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "AWS_ACCESS_KEY_ID": Managed by the AWS client`) - fmt.Fprintln(w, ` - "AWS_HOSTED_ZONE_ID": Override the hosted zone ID`) - fmt.Fprintln(w, ` - "AWS_REGION": Managed by the AWS client`) - fmt.Fprintln(w, ` - "AWS_SECRET_ACCESS_KEY": Managed by the AWS client`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "AWS_ACCESS_KEY_ID": Managed by the AWS client`) + ew.writeln(` - "AWS_HOSTED_ZONE_ID": Override the hosted zone ID`) + ew.writeln(` - "AWS_REGION": Managed by the AWS client`) + ew.writeln(` - "AWS_SECRET_ACCESS_KEY": Managed by the AWS client`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "AWS_MAX_RETRIES": The number of maximum returns the service will use to make an individual API request`) - fmt.Fprintln(w, ` - "AWS_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "AWS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "AWS_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "AWS_MAX_RETRIES": The number of maximum returns the service will use to make an individual API request`) + ew.writeln(` - "AWS_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "AWS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "AWS_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/route53`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/route53`) case "sakuracloud": // generated from: providers/dns/sakuracloud/sakuracloud.toml - fmt.Fprintln(w, `Configuration for Sakura Cloud.`) - fmt.Fprintln(w, `Code: 'sakuracloud'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Sakura Cloud.`) + ew.writeln(`Code: 'sakuracloud'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "SAKURACLOUD_ACCESS_TOKEN": Access token`) - fmt.Fprintln(w, ` - "SAKURACLOUD_ACCESS_TOKEN_SECRET": Access token secret`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "SAKURACLOUD_ACCESS_TOKEN": Access token`) + ew.writeln(` - "SAKURACLOUD_ACCESS_TOKEN_SECRET": Access token secret`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "SAKURACLOUD_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "SAKURACLOUD_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "SAKURACLOUD_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "SAKURACLOUD_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "SAKURACLOUD_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "SAKURACLOUD_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "SAKURACLOUD_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "SAKURACLOUD_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/sakuracloud`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/sakuracloud`) case "selectel": // generated from: providers/dns/selectel/selectel.toml - fmt.Fprintln(w, `Configuration for Selectel.`) - fmt.Fprintln(w, `Code: 'selectel'`) - fmt.Fprintln(w, `Since: 'v1.2.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Selectel.`) + ew.writeln(`Code: 'selectel'`) + ew.writeln(`Since: 'v1.2.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "SELECTEL_API_TOKEN": API token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "SELECTEL_API_TOKEN": API token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "SELECTEL_BASE_URL": API endpoint URL`) - fmt.Fprintln(w, ` - "SELECTEL_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "SELECTEL_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "SELECTEL_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "SELECTEL_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "SELECTEL_BASE_URL": API endpoint URL`) + ew.writeln(` - "SELECTEL_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "SELECTEL_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "SELECTEL_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "SELECTEL_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/selectel`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/selectel`) case "stackpath": // generated from: providers/dns/stackpath/stackpath.toml - fmt.Fprintln(w, `Configuration for Stackpath.`) - fmt.Fprintln(w, `Code: 'stackpath'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Stackpath.`) + ew.writeln(`Code: 'stackpath'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "STACKPATH_CLIENT_ID": Client ID`) - fmt.Fprintln(w, ` - "STACKPATH_CLIENT_SECRET": Client secret`) - fmt.Fprintln(w, ` - "STACKPATH_STACK_ID": Stack ID`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "STACKPATH_CLIENT_ID": Client ID`) + ew.writeln(` - "STACKPATH_CLIENT_SECRET": Client secret`) + ew.writeln(` - "STACKPATH_STACK_ID": Stack ID`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "STACKPATH_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "STACKPATH_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "STACKPATH_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "STACKPATH_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "STACKPATH_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "STACKPATH_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/stackpath`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/stackpath`) case "transip": // generated from: providers/dns/transip/transip.toml - fmt.Fprintln(w, `Configuration for TransIP.`) - fmt.Fprintln(w, `Code: 'transip'`) - fmt.Fprintln(w, `Since: 'v2.0.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for TransIP.`) + ew.writeln(`Code: 'transip'`) + ew.writeln(`Since: 'v2.0.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "TRANSIP_ACCOUNT_NAME": Account name`) - fmt.Fprintln(w, ` - "TRANSIP_PRIVATE_KEY_PATH": Private key path`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "TRANSIP_ACCOUNT_NAME": Account name`) + ew.writeln(` - "TRANSIP_PRIVATE_KEY_PATH": Private key path`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "TRANSIP_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "TRANSIP_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "TRANSIP_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "TRANSIP_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "TRANSIP_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "TRANSIP_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/transip`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/transip`) case "vegadns": // generated from: providers/dns/vegadns/vegadns.toml - fmt.Fprintln(w, `Configuration for VegaDNS.`) - fmt.Fprintln(w, `Code: 'vegadns'`) - fmt.Fprintln(w, `Since: 'v1.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for VegaDNS.`) + ew.writeln(`Code: 'vegadns'`) + ew.writeln(`Since: 'v1.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "SECRET_VEGADNS_KEY": API key`) - fmt.Fprintln(w, ` - "SECRET_VEGADNS_SECRET": API secret`) - fmt.Fprintln(w, ` - "VEGADNS_URL": API endpoint URL`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "SECRET_VEGADNS_KEY": API key`) + ew.writeln(` - "SECRET_VEGADNS_SECRET": API secret`) + ew.writeln(` - "VEGADNS_URL": API endpoint URL`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "VEGADNS_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "VEGADNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "VEGADNS_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "VEGADNS_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "VEGADNS_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "VEGADNS_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/vegadns`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/vegadns`) case "versio": // generated from: providers/dns/versio/versio.toml - fmt.Fprintln(w, `Configuration for Versio.[nl|eu|uk].`) - fmt.Fprintln(w, `Code: 'versio'`) - fmt.Fprintln(w, `Since: 'v2.7.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Versio.[nl|eu|uk].`) + ew.writeln(`Code: 'versio'`) + ew.writeln(`Since: 'v2.7.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "VERSIO_PASSWORD": Basic authentication password`) - fmt.Fprintln(w, ` - "VERSIO_USERNAME": Basic authentication username`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "VERSIO_PASSWORD": Basic authentication password`) + ew.writeln(` - "VERSIO_USERNAME": Basic authentication username`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "VERSIO_ENDPOINT": The endpoint URL of the API Server`) - fmt.Fprintln(w, ` - "VERSIO_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "VERSIO_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "VERSIO_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "VERSIO_SEQUENCE_INTERVAL": Interval between iteration, default 60s`) - fmt.Fprintln(w, ` - "VERSIO_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "VERSIO_ENDPOINT": The endpoint URL of the API Server`) + ew.writeln(` - "VERSIO_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "VERSIO_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "VERSIO_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "VERSIO_SEQUENCE_INTERVAL": Interval between iteration, default 60s`) + ew.writeln(` - "VERSIO_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/versio`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/versio`) case "vscale": // generated from: providers/dns/vscale/vscale.toml - fmt.Fprintln(w, `Configuration for Vscale.`) - fmt.Fprintln(w, `Code: 'vscale'`) - fmt.Fprintln(w, `Since: 'v2.0.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Vscale.`) + ew.writeln(`Code: 'vscale'`) + ew.writeln(`Since: 'v2.0.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "VSCALE_API_TOKEN": API token`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "VSCALE_API_TOKEN": API token`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "VSCALE_BASE_URL": API enddpoint URL`) - fmt.Fprintln(w, ` - "VSCALE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "VSCALE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "VSCALE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "VSCALE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "VSCALE_BASE_URL": API enddpoint URL`) + ew.writeln(` - "VSCALE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "VSCALE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "VSCALE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "VSCALE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/vscale`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/vscale`) case "vultr": // generated from: providers/dns/vultr/vultr.toml - fmt.Fprintln(w, `Configuration for Vultr.`) - fmt.Fprintln(w, `Code: 'vultr'`) - fmt.Fprintln(w, `Since: 'v0.3.1'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Vultr.`) + ew.writeln(`Code: 'vultr'`) + ew.writeln(`Since: 'v0.3.1'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "VULTR_API_KEY": API key`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "VULTR_API_KEY": API key`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "VULTR_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "VULTR_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "VULTR_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "VULTR_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "VULTR_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "VULTR_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "VULTR_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "VULTR_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/vultr`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/vultr`) case "zoneee": // generated from: providers/dns/zoneee/zoneee.toml - fmt.Fprintln(w, `Configuration for Zone.ee.`) - fmt.Fprintln(w, `Code: 'zoneee'`) - fmt.Fprintln(w, `Since: 'v2.1.0'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for Zone.ee.`) + ew.writeln(`Code: 'zoneee'`) + ew.writeln(`Since: 'v2.1.0'`) + ew.writeln() - fmt.Fprintln(w, `Credentials:`) - fmt.Fprintln(w, ` - "ZONEEE_API_KEY": API key`) - fmt.Fprintln(w, ` - "ZONEEE_API_USER": API user`) - fmt.Fprintln(w) + ew.writeln(`Credentials:`) + ew.writeln(` - "ZONEEE_API_KEY": API key`) + ew.writeln(` - "ZONEEE_API_USER": API user`) + ew.writeln() - fmt.Fprintln(w, `Additional Configuration:`) - fmt.Fprintln(w, ` - "ZONEEE_ENDPOINT": API endpoint URL`) - fmt.Fprintln(w, ` - "ZONEEE_HTTP_TIMEOUT": API request timeout`) - fmt.Fprintln(w, ` - "ZONEEE_POLLING_INTERVAL": Time between DNS propagation check`) - fmt.Fprintln(w, ` - "ZONEEE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) - fmt.Fprintln(w, ` - "ZONEEE_TTL": The TTL of the TXT record used for the DNS challenge`) + ew.writeln(`Additional Configuration:`) + ew.writeln(` - "ZONEEE_ENDPOINT": API endpoint URL`) + ew.writeln(` - "ZONEEE_HTTP_TIMEOUT": API request timeout`) + ew.writeln(` - "ZONEEE_POLLING_INTERVAL": Time between DNS propagation check`) + ew.writeln(` - "ZONEEE_PROPAGATION_TIMEOUT": Maximum waiting time for DNS propagation`) + ew.writeln(` - "ZONEEE_TTL": The TTL of the TXT record used for the DNS challenge`) - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/zoneee`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/zoneee`) case "manual": - fmt.Fprintln(w, `Solving the DNS-01 challenge using CLI prompt.`) + ew.writeln(`Solving the DNS-01 challenge using CLI prompt.`) default: - log.Fatalf("%q is not yet supported.", name) + return fmt.Errorf("%q is not yet supported", name) } - w.Flush() + + if ew.err != nil { + return fmt.Errorf("error: %v", ew.err) + } + + return w.Flush() } diff --git a/internal/dnsdocs/dns.go.tmpl b/internal/dnsdocs/dns.go.tmpl index 6d127ab6..0e70f329 100644 --- a/internal/dnsdocs/dns.go.tmpl +++ b/internal/dnsdocs/dns.go.tmpl @@ -9,8 +9,6 @@ import ( "sort" "strings" "text/tabwriter" - - "github.com/go-acme/lego/log" ) func allDNSCodes() string { @@ -24,35 +22,42 @@ func allDNSCodes() string { return strings.Join(providers, ", ") } -func displayDNSHelp(name string) { +func displayDNSHelp(name string) error { w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) + ew := &errWriter{w: w} + switch name { {{ range $provider := .Providers }} case "{{ $provider.Code }}": // generated from: {{ .GeneratedFrom }} - fmt.Fprintln(w, `Configuration for {{ $provider.Name }}.`) - fmt.Fprintln(w, `Code: '{{ $provider.Code }}'`) - fmt.Fprintln(w, `Since: '{{ $provider.Since }}'`) - fmt.Fprintln(w) + ew.writeln(`Configuration for {{ $provider.Name }}.`) + ew.writeln(`Code: '{{ $provider.Code }}'`) + ew.writeln(`Since: '{{ $provider.Since }}'`) + ew.writeln() {{if $provider.Configuration }}{{if $provider.Configuration.Credentials }} - fmt.Fprintln(w, `Credentials:`) + ew.writeln(`Credentials:`) {{- range $k, $v := $provider.Configuration.Credentials }} - fmt.Fprintln(w,` - "{{ $k }}": {{ safe $v }}`) + ew.writeln(` - "{{ $k }}": {{ safe $v }}`) {{- end}} - fmt.Fprintln(w) + ew.writeln() {{end}}{{if $provider.Configuration.Additional }} - fmt.Fprintln(w, `Additional Configuration:`) + ew.writeln(`Additional Configuration:`) {{- range $k, $v := $provider.Configuration.Additional }} - fmt.Fprintln(w, ` - "{{ $k }}": {{ safe $v }}`) + ew.writeln(` - "{{ $k }}": {{ safe $v }}`) {{- end}} {{end}}{{end}} - fmt.Fprintln(w) - fmt.Fprintln(w, `More information: https://go-acme.github.io/lego/dns/{{ $provider.Code }}`) + ew.writeln() + ew.writeln(`More information: https://go-acme.github.io/lego/dns/{{ $provider.Code }}`) {{end}} case "manual": - fmt.Fprintln(w, `Solving the DNS-01 challenge using CLI prompt.`) + ew.writeln(`Solving the DNS-01 challenge using CLI prompt.`) default: - log.Fatalf("%q is not yet supported.", name) + return fmt.Errorf("%q is not yet supported", name) } - w.Flush() + + if ew.err != nil { + return fmt.Errorf("error: %v", ew.err) + } + + return w.Flush() } \ No newline at end of file