github.com/lineaje-labs/syft@v0.98.1-0.20231227153149-9e393f60ff1b/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.ArchiveSearchConfig{
    17  			IncludeIndexedArchives:   true,
    18  			IncludeUnindexedArchives: false,
    19  		},
    20  		UseNetwork:              false,
    21  		MavenBaseURL:            mavenBaseURL,
    22  		MaxParentRecursiveDepth: 5,
    23  	}
    24  }
    25  
    26  func (j ArchiveCatalogerConfig) WithUseNetwork(input bool) ArchiveCatalogerConfig {
    27  	j.UseNetwork = input
    28  	return j
    29  }
    30  
    31  func (j ArchiveCatalogerConfig) WithMavenBaseURL(input string) ArchiveCatalogerConfig {
    32  	if input != "" {
    33  		j.MavenBaseURL = input
    34  	}
    35  	return j
    36  }
    37  
    38  func (j ArchiveCatalogerConfig) WithArchiveTraversal(search cataloging.ArchiveSearchConfig, maxDepth int) ArchiveCatalogerConfig {
    39  	if maxDepth > 0 {
    40  		j.MaxParentRecursiveDepth = maxDepth
    41  	}
    42  	j.ArchiveSearchConfig = search
    43  	return j
    44  }