github.com/anchore/syft@v1.4.2-0.20240516191711-1bec1fc5d397/syft/cataloging/pkgcataloging/config.go (about)

     1  package pkgcataloging
     2  
     3  import (
     4  	"github.com/anchore/syft/syft/pkg/cataloger/binary"
     5  	"github.com/anchore/syft/syft/pkg/cataloger/golang"
     6  	"github.com/anchore/syft/syft/pkg/cataloger/java"
     7  	"github.com/anchore/syft/syft/pkg/cataloger/javascript"
     8  	"github.com/anchore/syft/syft/pkg/cataloger/kernel"
     9  	"github.com/anchore/syft/syft/pkg/cataloger/python"
    10  )
    11  
    12  type Config struct {
    13  	Binary      binary.ClassifierCatalogerConfig  `yaml:"binary" json:"binary" mapstructure:"binary"`
    14  	Golang      golang.CatalogerConfig            `yaml:"golang" json:"golang" mapstructure:"golang"`
    15  	JavaArchive java.ArchiveCatalogerConfig       `yaml:"java-archive" json:"java-archive" mapstructure:"java-archive"`
    16  	JavaScript  javascript.CatalogerConfig        `yaml:"javascript" json:"javascript" mapstructure:"javascript"`
    17  	LinuxKernel kernel.LinuxKernelCatalogerConfig `yaml:"linux-kernel" json:"linux-kernel" mapstructure:"linux-kernel"`
    18  	Python      python.CatalogerConfig            `yaml:"python" json:"python" mapstructure:"python"`
    19  }
    20  
    21  func DefaultConfig() Config {
    22  	return Config{
    23  		Binary:      binary.DefaultClassifierCatalogerConfig(),
    24  		Golang:      golang.DefaultCatalogerConfig(),
    25  		LinuxKernel: kernel.DefaultLinuxKernelCatalogerConfig(),
    26  		Python:      python.DefaultCatalogerConfig(),
    27  		JavaArchive: java.DefaultArchiveCatalogerConfig(),
    28  	}
    29  }
    30  
    31  func (c Config) WithBinaryConfig(cfg binary.ClassifierCatalogerConfig) Config {
    32  	c.Binary = cfg
    33  	return c
    34  }
    35  
    36  func (c Config) WithGolangConfig(cfg golang.CatalogerConfig) Config {
    37  	c.Golang = cfg
    38  	return c
    39  }
    40  
    41  func (c Config) WithJavascriptConfig(cfg javascript.CatalogerConfig) Config {
    42  	c.JavaScript = cfg
    43  	return c
    44  }
    45  
    46  func (c Config) WithLinuxKernelConfig(cfg kernel.LinuxKernelCatalogerConfig) Config {
    47  	c.LinuxKernel = cfg
    48  	return c
    49  }
    50  
    51  func (c Config) WithPythonConfig(cfg python.CatalogerConfig) Config {
    52  	c.Python = cfg
    53  	return c
    54  }
    55  
    56  func (c Config) WithJavaArchiveConfig(cfg java.ArchiveCatalogerConfig) Config {
    57  	c.JavaArchive = cfg
    58  	return c
    59  }