You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NoiseTorch/scripts/embedlicenses.go

45 lines
1001 B
Go

package main
import (
"io/ioutil"
"os"
"path/filepath"
"strings"
)
func main() {
cwd, err := os.Getwd()
if err != nil {
panic(err)
}
out, _ := os.Create("licenses.go")
out.Write([]byte("package main \n\n//THIS FILE IS AUTOMATICALLY GENERATED BY `go generate` DO NOT EDIT!\n\nvar licenseString=`"))
out.WriteString("LICENSES\n")
out.WriteString("========\n")
defer out.Close()
filepath.Walk(cwd, func(path string, info os.FileInfo, err error) error {
if err != nil {
panic(err)
}
if strings.HasPrefix("LICENSE", info.Name()) {
rel, err := filepath.Rel(cwd, path)
if err != nil {
panic(err)
}
dir := filepath.Dir(rel)
out.WriteString("FILES: " + dir + "\n")
c, err := ioutil.ReadFile(path)
str := string(c)
str = strings.ReplaceAll(str, "`", "`"+" + \"`\" + `") // escape backticks in license text for go src
if err != nil {
panic(err)
}
out.WriteString(str)
out.WriteString("\n\n")
}
return nil
})
out.Write([]byte("`\n"))
}