Documentation ¶
Overview ¶
Package module defines a FOSSA CLI module.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Analysis ¶ added in v1.0.5
type Analysis struct { AnalyzerName string Graphs []TaggedGraph }
The completed analysis by an analyzer
type AnalyzerV2 ¶ added in v1.0.5
type AnalyzerV2 struct { Name string DiscoverFunc DiscoverFuncV2 Strategies Strategies }
func (AnalyzerV2) ScanModule ¶ added in v1.0.5
func (a AnalyzerV2) ScanModule(startJob func() error, endJob func(), progress display.ProgressTracker, folder Filepath, strategies DiscoveredStrategies) ([]TaggedGraph, *errors.Error)
type AnalyzerV2Output ¶ added in v1.0.5
type DiscoverFuncV2 ¶ added in v1.0.5
type DiscoverFuncV2 func(dir Filepath) (map[Filepath]DiscoveredStrategies, *errors.Error) // Map from 'module' roots to discovered strategies
A discoverfunc takes a root directory to scan and produces a map of relative filepaths to discovered strategies
NB: we may discover overlapping strategies for the same module For example: if we find package.json and node_modules, we're going to discover two `npm ls` strategies
We arbitrarily choose one file to use as the target of that strategy
type DiscoveredStrategies ¶ added in v1.0.5
type DiscoveredStrategies = map[StrategyName]Filepath
The filepath is the relative filepath from the root of the module
type Hashes ¶ added in v0.6.3
Hashes contains hexadecimal checksums of code libraries brought in by running a Build.
type Module ¶
type Module struct { Name string `yaml:"name"` // Uniquely identifies the module. Type pkg.Type `yaml:"type"` // Type of the root package, used to select the module's analyzer. IsExecutable bool `yaml:"-"` // Used for filtering discovered projects. Ignore bool `yaml:"ignore,omitempty"` // Used for marking ignored (blacklisted) modules. BuildTarget string `yaml:"target,omitempty"` // Exact build target in the semantics of the module's analyzers. Dir string `yaml:"cwd,omitempty"` // CWD to analyze the module from. Options map[string]interface{} `yaml:"options,omitempty"` // Analyzer option struct of the module type. Imports []pkg.Import `yaml:"-"` // Direct dependencies of the root package. Deps map[pkg.ID]pkg.Package `yaml:"-"` // All transitive dependencies of the root package (including Imports). }
A Module is a single compilable unit of code (e.g. an entrypoint) to analyze. Modules consist of a root Package, and the transitive dependencies of that package.
func (*Module) IsAnalyzed ¶ added in v0.7.0
IsAnalyzed returns true if a module has already been analyzed, and false otherwise.
type Strategies ¶ added in v1.0.5
type Strategies struct { // Map of strategy names to functions Named map[StrategyName]Strategy // The order in which to run strategies -- the first strategy to succeed is elected // as the "Best" dependency graph SortedNames []StrategyName // The set of optimal strategies. This will be used for warnings Optimal []StrategyName }
type Strategy ¶ added in v1.0.5
A strategy produces a dependency graph, with two paths relative to the root as arguments:
- The directory of the module. This is usually the parent directory of the "target"
- The "target" -- usually the file (or directory) that caused the invocation of this strategy
type StrategyName ¶ added in v1.0.5
type StrategyName = string
type TaggedGraph ¶ added in v1.0.5
type TaggedGraph struct { Strategy StrategyName // The file that led to this analysis, most often the file // analyzed by the relevant strategy File Filepath Graph graph.Deps }