mirror of https://github.com/k3s-io/k3s
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// LicenseFilePrefix is a list of filename prefixes that indicate it
|
|
// might contain a software license
|
|
var LicenseFilePrefix = []string{
|
|
"licence", // UK spelling
|
|
"license", // US spelling
|
|
"copying",
|
|
"unlicense",
|
|
"copyright",
|
|
"copyleft",
|
|
"authors",
|
|
"contributors",
|
|
}
|
|
|
|
// LegalFileSubstring are substrings that indicate the file is likely
|
|
// to contain some type of legal declaration. "legal" is often used
|
|
// that it might moved to LicenseFilePrefix
|
|
var LegalFileSubstring = []string{
|
|
"legal",
|
|
"notice",
|
|
"disclaimer",
|
|
"patent",
|
|
"third-party",
|
|
"thirdparty",
|
|
}
|
|
|
|
// IsLicenseFile returns true if the filename might be contain a
|
|
// software license
|
|
func IsLicenseFile(filename string) bool {
|
|
lowerfile := strings.ToLower(filename)
|
|
for _, prefix := range LicenseFilePrefix {
|
|
if strings.HasPrefix(lowerfile, prefix) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|
|
|
|
// IsLegalFile returns true if the file is likely to contain some type
|
|
// of of legal declaration or licensing information
|
|
func IsLegalFile(filename string) bool {
|
|
lowerfile := strings.ToLower(filename)
|
|
for _, prefix := range LicenseFilePrefix {
|
|
if strings.HasPrefix(lowerfile, prefix) {
|
|
return true
|
|
}
|
|
}
|
|
for _, substring := range LegalFileSubstring {
|
|
if strings.Contains(lowerfile, substring) {
|
|
return true
|
|
}
|
|
}
|
|
return false
|
|
}
|