github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/analyzer/language/conda/meta/meta.go (about) 1 package meta 2 3 import ( 4 "context" 5 "os" 6 "path/filepath" 7 "regexp" 8 9 "github.com/aquasecurity/go-dep-parser/pkg/conda/meta" 10 "github.com/devseccon/trivy/pkg/fanal/analyzer" 11 "github.com/devseccon/trivy/pkg/fanal/analyzer/language" 12 "github.com/devseccon/trivy/pkg/fanal/types" 13 ) 14 15 func init() { 16 analyzer.RegisterAnalyzer(&metaAnalyzer{}) 17 } 18 19 const version = 1 20 21 var fileRegex = regexp.MustCompile(`.*/envs/.+/conda-meta/.+-.+-.+\.json`) 22 23 type metaAnalyzer struct{} 24 25 func (a metaAnalyzer) Analyze(_ context.Context, input analyzer.AnalysisInput) (*analyzer.AnalysisResult, error) { 26 p := meta.NewParser() 27 return language.AnalyzePackage(types.CondaPkg, input.FilePath, input.Content, p, input.Options.FileChecksum) 28 } 29 func (a metaAnalyzer) Required(filePath string, _ os.FileInfo) bool { 30 return fileRegex.MatchString(filepath.ToSlash(filePath)) 31 } 32 33 func (a metaAnalyzer) Type() analyzer.Type { 34 return analyzer.TypeCondaPkg 35 } 36 37 func (a metaAnalyzer) Version() int { 38 return version 39 }