diff --git a/cmd/flux/create_source_git_test.go b/cmd/flux/create_source_git_test.go index d2ece63651..f8ebb16765 100644 --- a/cmd/flux/create_source_git_test.go +++ b/cmd/flux/create_source_git_test.go @@ -147,7 +147,7 @@ func TestCreateSourceGitExport(t *testing.T) { { name: "source with invalid provider", args: "create source git podinfo --namespace=flux-system --url=https://dev.azure.com/foo/bar/_git/podinfo --provider dummy --branch=test --interval=1m0s --export", - assert: assertError("invalid argument \"dummy\" for \"--provider\" flag: source Git provider 'dummy' is not supported, must be one of: generic|azure"), + assert: assertError("invalid argument \"dummy\" for \"--provider\" flag: source Git provider 'dummy' is not supported, must be one of: generic, azure"), }, { name: "source with empty provider", diff --git a/internal/flags/crds.go b/internal/flags/crds.go index 81f6d604c8..3eeba92bb7 100644 --- a/internal/flags/crds.go +++ b/internal/flags/crds.go @@ -52,9 +52,9 @@ func (a *CRDsPolicy) Set(str string) error { } func (a *CRDsPolicy) Type() string { - return "crds" + return strings.Join(supportedCRDsPolicies, "|") } func (a *CRDsPolicy) Description() string { - return fmt.Sprintf("upgrade CRDs policy, available options are: (%s)", strings.Join(supportedCRDsPolicies, ", ")) + return "upgrade CRDs policy" } diff --git a/internal/flags/decryption_provider.go b/internal/flags/decryption_provider.go index 085340aba7..ad4a90bcee 100644 --- a/internal/flags/decryption_provider.go +++ b/internal/flags/decryption_provider.go @@ -39,16 +39,15 @@ func (d *DecryptionProvider) Set(str string) error { if !utils.ContainsItemString(supportedDecryptionProviders, str) { return fmt.Errorf("unsupported decryption provider '%s', must be one of: %s", str, strings.Join(supportedDecryptionProviders, ", ")) - } *d = DecryptionProvider(str) return nil } func (d *DecryptionProvider) Type() string { - return "decryptionProvider" + return strings.Join(supportedDecryptionProviders, "|") } func (d *DecryptionProvider) Description() string { - return fmt.Sprintf("decryption provider, available options are: (%s)", strings.Join(supportedDecryptionProviders, ", ")) + return "decryption provider" } diff --git a/internal/flags/ecdsa_curve.go b/internal/flags/ecdsa_curve.go index 9be8469bfe..fba3c1493e 100644 --- a/internal/flags/ecdsa_curve.go +++ b/internal/flags/ecdsa_curve.go @@ -49,11 +49,11 @@ func (c *ECDSACurve) Set(str string) error { } func (c *ECDSACurve) Type() string { - return "ecdsaCurve" + return strings.Join(ecdsaCurves(), "|") } func (c *ECDSACurve) Description() string { - return fmt.Sprintf("SSH ECDSA public key curve (%s)", strings.Join(ecdsaCurves(), ", ")) + return "SSH ECDSA public key curve" } func ecdsaCurves() []string { diff --git a/internal/flags/gitlab_visibility.go b/internal/flags/gitlab_visibility.go index 924dd898d1..e729cb3d53 100644 --- a/internal/flags/gitlab_visibility.go +++ b/internal/flags/gitlab_visibility.go @@ -18,6 +18,7 @@ package flags import ( "fmt" + "sort" "strings" "github.com/fluxcd/go-git-providers/gitprovider" @@ -51,16 +52,26 @@ func (d *GitLabVisibility) Set(str string) error { } var visibility = gitprovider.RepositoryVisibility(str) if ValidateRepositoryVisibility(visibility) != nil { - return fmt.Errorf("unsupported visibility '%s'", str) + return fmt.Errorf("unsupported visibility '%s', must be one of: %s", + str, strings.Join(gitLabVisibilities(), ", ")) } *d = GitLabVisibility(visibility) return nil } func (d *GitLabVisibility) Type() string { - return "gitLabVisibility" + return strings.Join(gitLabVisibilities(), "|") } func (d *GitLabVisibility) Description() string { - return fmt.Sprintf("specifies the visibility of the repository. Valid values are public, private, internal") + return "specifies the visibility of the repository" +} + +func gitLabVisibilities() []string { + visibilities := make([]string, 0, len(supportedGitLabVisibilities)) + for visibility := range supportedGitLabVisibilities { + visibilities = append(visibilities, string(visibility)) + } + sort.Strings(visibilities) + return visibilities } diff --git a/internal/flags/helm_chart_source.go b/internal/flags/helm_chart_source.go index 079ca4d3d1..2b32188628 100644 --- a/internal/flags/helm_chart_source.go +++ b/internal/flags/helm_chart_source.go @@ -64,13 +64,10 @@ func (s *HelmChartSource) Set(str string) error { } func (s *HelmChartSource) Type() string { - return "helmChartSource" + return "/." } func (s *HelmChartSource) Description() string { - return fmt.Sprintf( - "source that contains the chart in the format '/.', "+ - "where kind must be one of: (%s)", - strings.Join(supportedHelmChartSourceKinds, ", "), - ) + return fmt.Sprintf("source that contains the chart, where kind must be one of: (%s)", + strings.Join(supportedHelmChartSourceKinds, ", ")) } diff --git a/internal/flags/kustomization_source.go b/internal/flags/kustomization_source.go index 4dc124ab76..24ddbc2af8 100644 --- a/internal/flags/kustomization_source.go +++ b/internal/flags/kustomization_source.go @@ -71,13 +71,10 @@ func (s *KustomizationSource) Set(str string) error { } func (s *KustomizationSource) Type() string { - return "kustomizationSource" + return "[/]." } func (s *KustomizationSource) Description() string { - return fmt.Sprintf( - "source that contains the Kubernetes manifests in the format '[/].', "+ - "where kind must be one of: (%s), if kind is not specified it defaults to GitRepository", - strings.Join(supportedKustomizationSourceKinds, ", "), - ) + return fmt.Sprintf("source that contains the Kubernetes manifests, where kind must be one of: (%s), if kind is not specified it defaults to %s", + strings.Join(supportedKustomizationSourceKinds, ", "), sourcev1.GitRepositoryKind) } diff --git a/internal/flags/local_helm_chart_source.go b/internal/flags/local_helm_chart_source.go index 19d2e5305c..ac28bb5ecb 100644 --- a/internal/flags/local_helm_chart_source.go +++ b/internal/flags/local_helm_chart_source.go @@ -58,13 +58,10 @@ func (s *LocalHelmChartSource) Set(str string) error { } func (s *LocalHelmChartSource) Type() string { - return "helmChartSource" + return "/" } func (s *LocalHelmChartSource) Description() string { - return fmt.Sprintf( - "source that contains the chart in the format '/', "+ - "where kind must be one of: (%s)", - strings.Join(supportedHelmChartSourceKinds, ", "), - ) + return fmt.Sprintf("source that contains the chart, where kind must be one of: (%s)", + strings.Join(supportedHelmChartSourceKinds, ", ")) } diff --git a/internal/flags/log_level.go b/internal/flags/log_level.go index 4101a90296..6fb1c2c531 100644 --- a/internal/flags/log_level.go +++ b/internal/flags/log_level.go @@ -46,9 +46,9 @@ func (l *LogLevel) Set(str string) error { } func (l *LogLevel) Type() string { - return "logLevel" + return strings.Join(supportedLogLevels, "|") } func (l *LogLevel) Description() string { - return fmt.Sprintf("log level, available options are: (%s)", strings.Join(supportedLogLevels, ", ")) + return "log level" } diff --git a/internal/flags/public_key_algorithm.go b/internal/flags/public_key_algorithm.go index ed4902a7a5..d2bda1c89c 100644 --- a/internal/flags/public_key_algorithm.go +++ b/internal/flags/public_key_algorithm.go @@ -45,9 +45,9 @@ func (a *PublicKeyAlgorithm) Set(str string) error { } func (a *PublicKeyAlgorithm) Type() string { - return "publicKeyAlgorithm" + return strings.Join(supportedPublicKeyAlgorithms, "|") } func (a *PublicKeyAlgorithm) Description() string { - return fmt.Sprintf("SSH public key algorithm (%s)", strings.Join(supportedPublicKeyAlgorithms, ", ")) + return "SSH public key algorithm" } diff --git a/internal/flags/rsa_key_bits.go b/internal/flags/rsa_key_bits.go index 716a461771..d8ec7d98f5 100644 --- a/internal/flags/rsa_key_bits.go +++ b/internal/flags/rsa_key_bits.go @@ -50,7 +50,7 @@ func (b *RSAKeyBits) Set(str string) error { } func (b *RSAKeyBits) Type() string { - return "rsaKeyBits" + return "int" } func (b *RSAKeyBits) Description() string { diff --git a/internal/flags/source_bucket_provider.go b/internal/flags/source_bucket_provider.go index bd93b41dfc..7b1c4fe59f 100644 --- a/internal/flags/source_bucket_provider.go +++ b/internal/flags/source_bucket_provider.go @@ -52,12 +52,9 @@ func (p *SourceBucketProvider) Set(str string) error { } func (p *SourceBucketProvider) Type() string { - return "sourceBucketProvider" + return strings.Join(supportedSourceBucketProviders, "|") } func (p *SourceBucketProvider) Description() string { - return fmt.Sprintf( - "the S3 compatible storage provider name, available options are: (%s)", - strings.Join(supportedSourceBucketProviders, ", "), - ) + return "the S3 compatible storage provider name" } diff --git a/internal/flags/source_git_provider.go b/internal/flags/source_git_provider.go index 63cec33e91..9de1ce93cf 100644 --- a/internal/flags/source_git_provider.go +++ b/internal/flags/source_git_provider.go @@ -42,7 +42,7 @@ func (p *SourceGitProvider) Set(str string) error { } if !utils.ContainsItemString(supportedSourceGitProviders, str) { return fmt.Errorf("source Git provider '%s' is not supported, must be one of: %v", - str, p.Type()) + str, strings.Join(supportedSourceGitProviders, ", ")) } *p = SourceGitProvider(str) return nil diff --git a/internal/flags/source_oci_provider.go b/internal/flags/source_oci_provider.go index 77ff044183..013619fe4e 100644 --- a/internal/flags/source_oci_provider.go +++ b/internal/flags/source_oci_provider.go @@ -59,14 +59,11 @@ func (p *SourceOCIProvider) Set(str string) error { } func (p *SourceOCIProvider) Type() string { - return "sourceOCIProvider" + return strings.Join(supportedSourceOCIProviders, "|") } func (p *SourceOCIProvider) Description() string { - return fmt.Sprintf( - "the OCI provider name, available options are: (%s)", - strings.Join(supportedSourceOCIProviders, ", "), - ) + return "the OCI provider name" } func (p *SourceOCIProvider) ToOCIProvider() (oci.Provider, error) { diff --git a/internal/flags/source_oci_verify_provider.go b/internal/flags/source_oci_verify_provider.go index acd57a9d2f..5cd68b493f 100644 --- a/internal/flags/source_oci_verify_provider.go +++ b/internal/flags/source_oci_verify_provider.go @@ -47,12 +47,9 @@ func (p *SourceOCIVerifyProvider) Set(str string) error { } func (p *SourceOCIVerifyProvider) Type() string { - return "sourceOCIVerifyProvider" + return strings.Join(supportedSourceOCIVerifyProviders, "|") } func (p *SourceOCIVerifyProvider) Description() string { - return fmt.Sprintf( - "the OCI verify provider name to use for signature verification, available options are: (%s)", - strings.Join(supportedSourceOCIVerifyProviders, ", "), - ) + return "the OCI verify provider name to use for signature verification" }