github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/analyzer/language/swift/cocoapods/cocoapods.go (about) 1 package cocoapods 2 3 import ( 4 "context" 5 "os" 6 7 "golang.org/x/xerrors" 8 9 "github.com/aquasecurity/go-dep-parser/pkg/swift/cocoapods" 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(&cocoaPodsLockAnalyzer{}) 17 } 18 19 const ( 20 version = 1 21 ) 22 23 // cocoaPodsLockAnalyzer analyzes Podfile.lock 24 type cocoaPodsLockAnalyzer struct{} 25 26 func (a cocoaPodsLockAnalyzer) Analyze(_ context.Context, input analyzer.AnalysisInput) (*analyzer.AnalysisResult, error) { 27 p := cocoapods.NewParser() 28 res, err := language.Analyze(types.Cocoapods, input.FilePath, input.Content, p) 29 if err != nil { 30 return nil, xerrors.Errorf("%s parse error: %w", input.FilePath, err) 31 } 32 return res, nil 33 } 34 35 func (a cocoaPodsLockAnalyzer) Required(_ string, fileInfo os.FileInfo) bool { 36 return fileInfo.Name() == types.CocoaPodsLock 37 } 38 39 func (a cocoaPodsLockAnalyzer) Type() analyzer.Type { 40 return analyzer.TypeCocoaPods 41 } 42 43 func (a cocoaPodsLockAnalyzer) Version() int { 44 return version 45 }