classifyLicenseText function
Classifies a LICENSE file's raw text by matching well-known license
header text — case-sensitive on purpose (a license file's own actual
wording is what a legal reviewer would look at too, a lowercase
substring match risks matching unrelated prose).
Implementation
LicenseCategory classifyLicenseText(String? licenseFileContent) {
if (licenseFileContent == null || licenseFileContent.trim().isEmpty) {
return LicenseCategory.unknown;
}
for (final marker in _copyleftMarkers) {
if (licenseFileContent.contains(marker)) return LicenseCategory.copyleft;
}
for (final marker in _permissiveMarkers) {
if (licenseFileContent.contains(marker)) return LicenseCategory.permissive;
}
return LicenseCategory.unknown;
}