func Identify()

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
}