github.com/anchore/syft@v1.38.2/cmd/syft/internal/options/compliance.go (about) 1 package options 2 3 import ( 4 "github.com/anchore/fangs" 5 "github.com/anchore/syft/syft/cataloging" 6 ) 7 8 var ( 9 _ fangs.FieldDescriber = (*complianceConfig)(nil) 10 _ fangs.PostLoader = (*complianceConfig)(nil) 11 ) 12 13 type complianceConfig struct { 14 MissingName cataloging.ComplianceAction `mapstructure:"missing-name" json:"missing-name" yaml:"missing-name"` 15 MissingVersion cataloging.ComplianceAction `mapstructure:"missing-version" json:"missing-version" yaml:"missing-version"` 16 } 17 18 func defaultComplianceConfig() complianceConfig { 19 def := cataloging.DefaultComplianceConfig() 20 return complianceConfig{ 21 MissingName: def.MissingName, 22 MissingVersion: def.MissingVersion, 23 } 24 } 25 26 func (r *complianceConfig) DescribeFields(descriptions fangs.FieldDescriptionSet) { 27 descriptions.Add(&r.MissingName, "action to take when a package is missing a name") 28 descriptions.Add(&r.MissingVersion, "action to take when a package is missing a version") 29 } 30 31 func (r *complianceConfig) PostLoad() error { 32 r.MissingName = r.MissingName.Parse() 33 r.MissingVersion = r.MissingVersion.Parse() 34 return nil 35 }