github.com/anchore/syft@v1.4.2-0.20240516191711-1bec1fc5d397/syft/pkg/cataloger/java/config.go (about)

     1  package java
     2  
     3  import "github.com/anchore/syft/syft/cataloging"
     4  
     5  const mavenBaseURL = "https://repo1.maven.org/maven2"
     6  
     7  type ArchiveCatalogerConfig struct {
     8  	cataloging.ArchiveSearchConfig `yaml:",inline" json:"" mapstructure:",squash"`
     9  	UseNetwork                     bool   `yaml:"use-network" json:"use-network" mapstructure:"use-network"`
    10  	MavenBaseURL                   string `yaml:"maven-base-url" json:"maven-base-url" mapstructure:"maven-base-url"`
    11  	MaxParentRecursiveDepth        int    `yaml:"max-parent-recursive-depth" json:"max-parent-recursive-depth" mapstructure:"max-parent-recursive-depth"`
    12  }
    13  
    14  func DefaultArchiveCatalogerConfig() ArchiveCatalogerConfig {
    15  	return ArchiveCatalogerConfig{
    16  		ArchiveSearchConfig:     cataloging.DefaultArchiveSearchConfig(),
    17  		UseNetwork:              false,
    18  		MavenBaseURL:            mavenBaseURL,
    19  		MaxParentRecursiveDepth: 5,
    20  	}
    21  }
    22  
    23  func (j ArchiveCatalogerConfig) WithUseNetwork(input bool) ArchiveCatalogerConfig {
    24  	j.UseNetwork = input
    25  	return j
    26  }
    27  
    28  func (j ArchiveCatalogerConfig) WithMavenBaseURL(input string) ArchiveCatalogerConfig {
    29  	if input != "" {
    30  		j.MavenBaseURL = input
    31  	}
    32  	return j
    33  }
    34  
    35  func (j ArchiveCatalogerConfig) WithArchiveTraversal(search cataloging.ArchiveSearchConfig, maxDepth int) ArchiveCatalogerConfig {
    36  	if maxDepth > 0 {
    37  		j.MaxParentRecursiveDepth = maxDepth
    38  	}
    39  	j.ArchiveSearchConfig = search
    40  	return j
    41  }