in pkg/license/identifier.go [71:93]
func Identify(content string, threshold int) (string, error) {
coverage := scanner().Scan([]byte(content))
if coverage.Percent < float64(threshold) {
return "", fmt.Errorf("cannot identify the license, coverage: %.1f%%", coverage.Percent)
}
seen := make(map[string]bool)
var sb strings.Builder
sb.WriteString(coverage.Match[0].ID)
seen[coverage.Match[0].ID] = true
for i := 1; i < len(coverage.Match); i++ {
if seen[coverage.Match[i].ID] {
continue
}
seen[coverage.Match[i].ID] = true
sb.WriteString(" and ")
sb.WriteString(coverage.Match[i].ID)
}
return sb.String(), nil
}