diff --git a/build/update-license.go b/build/update-license.go index 52a54bf66a..f61536470a 100644 --- a/build/update-license.go +++ b/build/update-license.go @@ -46,13 +46,12 @@ import ( "path/filepath" "regexp" "runtime" + "sort" "strconv" "strings" "sync" "text/template" "time" - - "golang.org/x/exp/slices" ) var ( @@ -153,6 +152,13 @@ func (i info) gpl() bool { return false } +// authors implements the sort.Interface for strings in case-insensitive mode. +type authors []string + +func (as authors) Len() int { return len(as) } +func (as authors) Less(i, j int) bool { return strings.ToLower(as[i]) < strings.ToLower(as[j]) } +func (as authors) Swap(i, j int) { as[i], as[j] = as[j], as[i] } + func main() { var ( files = getFiles() @@ -293,9 +299,7 @@ func writeAuthors(files []string) { } } // Write sorted list of authors back to the file. - slices.SortFunc(list, func(a, b string) bool { - return strings.ToLower(a) < strings.ToLower(b) - }) + sort.Sort(authors(list)) content := new(bytes.Buffer) content.WriteString(authorsFileHeader) for _, a := range list {