Skip to content

Commit

Permalink
refactor: expose kubeconform config
Browse files Browse the repository at this point in the history
  • Loading branch information
aabouzaid committed Apr 12, 2023
1 parent 484252d commit 66e2a96
Showing 1 changed file with 39 additions and 25 deletions.
64 changes: 39 additions & 25 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,48 @@ type Stream struct {
}

type Config struct {
Cache string
Debug bool
ExitOnError bool
Files []string
SchemaLocations []string
SkipTLS bool
SkipKinds map[string]struct{}
Cache string `yaml:"cache" json:"cache"`
Debug bool `yaml:"debug" json:"debug"`
ExitOnError bool `yaml:"exitOnError" json:"exitOnError"`
Files []string `yaml:"files" json:"files"`
Help bool `yaml:"help" json:"help"`
IgnoreFilenamePatterns []string `yaml:"ignoreFilenamePatterns" json:"ignoreFilenamePatterns"`
IgnoreMissingSchemas bool `yaml:"ignoreMissingSchemas" json:"ignoreMissingSchemas"`
KubernetesVersion string `yaml:"kubernetesVersion" json:"kubernetesVersion"`
NumberOfWorkers int `yaml:"numberOfWorkers" json:"numberOfWorkers"`
OutputFormat string `yaml:"output" json:"output"`
RejectKinds map[string]struct{}
OutputFormat string
KubernetesVersion string
NumberOfWorkers int
Summary bool
Strict bool
Verbose bool
IgnoreMissingSchemas bool
IgnoreFilenamePatterns []string
Help bool
Version bool
RejectKindsNG []string `yaml:"reject" json:"reject"`
SchemaLocations []string `yaml:"schemaLocations" json:"schemaLocations"`
SkipKinds map[string]struct{}
SkipKindsNG []string `yaml:"skip" json:"skip"`
SkipTLS bool `yaml:"insecureSkipTLSVerify" json:"insecureSkipTLSVerify"`
Strict bool `yaml:"strict" json:"strict"`
Summary bool `yaml:"summary" json:"summary"`
Verbose bool `yaml:"verbose" json:"verbose"`
Version bool `yaml:"version" json:"version"`
Stream *Stream
}

// LoadNGConfig allows to introduce new config while keeping backward compatibility.
func (c *Config) LoadNGConfig() error {
// SkipKindsNG.
loadKinds(c.SkipKinds, c.SkipKindsNG)

// RejectKindsNG.
loadKinds(c.RejectKinds, c.RejectKindsNG)

return nil
}

func loadKinds(dest map[string]struct{}, src []string) {
for _, kind := range src {
if len(kind) > 0 {
dest[kind] = struct{}{}
}
}
}

type arrayParam []string

func (ap *arrayParam) String() string {
Expand All @@ -49,15 +70,8 @@ func (ap *arrayParam) Set(value string) error {
}

func splitCSV(csvStr string) map[string]struct{} {
splitValues := strings.Split(csvStr, ",")
valuesMap := map[string]struct{}{}

for _, kind := range splitValues {
if len(kind) > 0 {
valuesMap[kind] = struct{}{}
}
}

loadKinds(valuesMap, strings.Split(csvStr, ","))
return valuesMap
}

Expand Down

0 comments on commit 66e2a96

Please sign in to comment.