mirror of
https://github.com/anchore/syft.git
synced 2026-10-30 14:02:26 +01:00
75 lines
2.9 KiB
Go
75 lines
2.9 KiB
Go
package java
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/anchore/syft/syft/cataloging"
|
|
"github.com/anchore/syft/syft/pkg/cataloger/java/internal/maven"
|
|
)
|
|
|
|
type ArchiveCatalogerConfig struct {
|
|
cataloging.ArchiveSearchConfig `yaml:",inline" json:"" mapstructure:",squash"`
|
|
UseNetwork bool `yaml:"use-network" json:"use-network" mapstructure:"use-network"`
|
|
UseMavenLocalRepository bool `yaml:"use-maven-localrepository" json:"use-maven-localrepository" mapstructure:"use-maven-localrepository"`
|
|
MavenLocalRepositoryDir string `yaml:"maven-localrepository-dir" json:"maven-localrepository-dir" mapstructure:"maven-localrepository-dir"`
|
|
MavenBaseURL string `yaml:"maven-base-url" json:"maven-base-url" mapstructure:"maven-base-url"`
|
|
MaxParentRecursiveDepth int `yaml:"max-parent-recursive-depth" json:"max-parent-recursive-depth" mapstructure:"max-parent-recursive-depth"`
|
|
ResolveTransitiveDependencies bool `yaml:"resolve-transitive-dependencies" json:"resolve-transitive-dependencies" mapstructure:"resolve-transitive-dependencies"`
|
|
}
|
|
|
|
func DefaultArchiveCatalogerConfig() ArchiveCatalogerConfig {
|
|
mavenCfg := maven.DefaultConfig()
|
|
return ArchiveCatalogerConfig{
|
|
ArchiveSearchConfig: cataloging.DefaultArchiveSearchConfig(),
|
|
UseNetwork: mavenCfg.UseNetwork,
|
|
UseMavenLocalRepository: mavenCfg.UseLocalRepository,
|
|
MavenLocalRepositoryDir: mavenCfg.LocalRepositoryDir,
|
|
MavenBaseURL: strings.Join(mavenCfg.Repositories, ","),
|
|
MaxParentRecursiveDepth: mavenCfg.MaxParentRecursiveDepth,
|
|
ResolveTransitiveDependencies: false,
|
|
}
|
|
}
|
|
|
|
func (j ArchiveCatalogerConfig) WithUseNetwork(input bool) ArchiveCatalogerConfig {
|
|
j.UseNetwork = input
|
|
return j
|
|
}
|
|
|
|
func (j ArchiveCatalogerConfig) WithUseMavenLocalRepository(input bool) ArchiveCatalogerConfig {
|
|
j.UseMavenLocalRepository = input
|
|
return j
|
|
}
|
|
|
|
func (j ArchiveCatalogerConfig) WithMavenLocalRepositoryDir(input string) ArchiveCatalogerConfig {
|
|
j.MavenLocalRepositoryDir = input
|
|
return j
|
|
}
|
|
|
|
func (j ArchiveCatalogerConfig) WithMavenBaseURL(input string) ArchiveCatalogerConfig {
|
|
if input != "" {
|
|
j.MavenBaseURL = input
|
|
}
|
|
return j
|
|
}
|
|
|
|
func (j ArchiveCatalogerConfig) WithResolveTransitiveDependencies(resolveTransitiveDependencies bool) ArchiveCatalogerConfig {
|
|
j.ResolveTransitiveDependencies = resolveTransitiveDependencies
|
|
return j
|
|
}
|
|
|
|
func (j ArchiveCatalogerConfig) WithArchiveTraversal(search cataloging.ArchiveSearchConfig, maxDepth int) ArchiveCatalogerConfig {
|
|
j.MaxParentRecursiveDepth = maxDepth
|
|
j.ArchiveSearchConfig = search
|
|
return j
|
|
}
|
|
|
|
func (j ArchiveCatalogerConfig) mavenConfig() maven.Config {
|
|
return maven.Config{
|
|
UseNetwork: j.UseNetwork,
|
|
UseLocalRepository: j.UseMavenLocalRepository,
|
|
LocalRepositoryDir: j.MavenLocalRepositoryDir,
|
|
Repositories: strings.Split(j.MavenBaseURL, ","),
|
|
MaxParentRecursiveDepth: j.MaxParentRecursiveDepth,
|
|
}
|
|
}
|