package cmd import ( "git.ar21.de/yolokube/go-traefik-certmanager/internal/config" "github.com/alecthomas/kong" ) //nolint:lll // ignore line length type CLI struct { CertIssuerName string `name:"cert-issuer-name" env:"CERT_ISSUER_NAME" help:"Name for the certificate issuer" default:"${default_cert_issuer_name}"` CertIssuerKind string `name:"cert-issuer-kind" env:"CERT_ISSUER_KIND" help:"Kind for the certificate issuer" default:"${default_cert_issuer_kind}"` CertCleanup bool `name:"cert-cleanup" env:"CERT_CLEANUP" help:"Delete outdated / removed certificates" default:"${default_cert_cleanup}"` PatchSecretName bool `name:"patch-secret-name" env:"PATCH_SECRET_NAME" help:"Adjust secret names" default:"${default_patch_secret_name}"` } func (c *CLI) Parse() *config.AppSettings { _ = kong.Parse( c, kong.Vars{ "default_cert_issuer_name": "letsencrypt", "default_cert_issuer_kind": "ClusterIssuer", "default_cert_cleanup": "false", "default_patch_secret_name": "false", }, kong.Name("go-traefik-certmanager"), kong.Description("🚀 Start a simple service to sync certificates for traefik CRs"), kong.UsageOnError(), ) return &config.AppSettings{ CertIssuerName: c.CertIssuerName, CertIssuerKind: c.CertIssuerKind, CertCleanup: c.CertCleanup, PatchSecretName: c.PatchSecretName, } }