github.com/anchore/syft@v1.38.2/internal/licenses/find_evidence.go (about) 1 package licenses 2 3 import ( 4 "context" 5 "io" 6 ) 7 8 func (s *scanner) FindEvidence(_ context.Context, reader io.Reader) (evidence []Evidence, content []byte, err error) { 9 if s.scanner == nil { 10 return nil, nil, nil 11 } 12 13 content, err = io.ReadAll(reader) 14 if err != nil { 15 return nil, nil, err 16 } 17 18 cov := s.scanner(content) 19 if cov.Percent < s.coverageThreshold { 20 // unknown or no licenses here 21 // => check return content to Search to process 22 return nil, content, nil 23 } 24 25 evidence = make([]Evidence, 0) 26 for _, m := range cov.Match { 27 evidence = append(evidence, Evidence{ 28 ID: m.ID, 29 Type: m.Type, 30 Start: m.Start, 31 End: m.End, 32 IsURL: m.IsURL, 33 }) 34 } 35 return evidence, content, nil 36 }