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  }