Fix obscure 'go generate' crash. (#2173)

This commit is contained in:
Paul Dee 2023-03-15 22:04:21 +01:00 committed by GitHub
parent 28fcd264ee
commit fb6a79ab6f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -34,15 +34,19 @@ var delimiterRegex = regexp.MustCompile(`(?m)^---\n`)
func parseFrontMatter(content string) (map[string]interface{}, string, error) { func parseFrontMatter(content string) (map[string]interface{}, string, error) {
delimiterIndices := delimiterRegex.FindAllStringIndex(content, 2) delimiterIndices := delimiterRegex.FindAllStringIndex(content, 2)
startIndex := delimiterIndices[0][0] if len(delimiterIndices) > 0 {
endIndex := delimiterIndices[1][0] startIndex := delimiterIndices[0][0]
yamlString := content[startIndex+4 : endIndex] endIndex := delimiterIndices[1][0]
var frontMatter map[string]interface{} yamlString := content[startIndex+4 : endIndex]
err := yaml.Unmarshal([]byte(yamlString), &frontMatter) var frontMatter map[string]interface{}
if err != nil { err := yaml.Unmarshal([]byte(yamlString), &frontMatter)
return nil, "", err if err != nil {
return nil, "", err
}
return frontMatter, content[endIndex+4:], nil
} else {
return nil, "", fmt.Errorf("Failed to parse file. Remove it and try again.")
} }
return frontMatter, content[endIndex+4:], nil
} }
var returnTypes = map[string]string{ var returnTypes = map[string]string{
@ -81,8 +85,8 @@ func generateFunctionTypes() (string, error) {
} }
frontMatter, body, err := parseFrontMatter(string(content)) frontMatter, body, err := parseFrontMatter(string(content))
if err != nil { if err != nil {
println("Error parsing front matter in", fPath) println("Error parsing front matter in", fPath, "error: ", err.Error())
return "", err continue
} }
if frontMatter["ts_ignore"] == true { if frontMatter["ts_ignore"] == true {
continue continue