1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00

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

View File

@ -34,15 +34,19 @@ var delimiterRegex = regexp.MustCompile(`(?m)^---\n`)
func parseFrontMatter(content string) (map[string]interface{}, string, error) {
delimiterIndices := delimiterRegex.FindAllStringIndex(content, 2)
startIndex := delimiterIndices[0][0]
endIndex := delimiterIndices[1][0]
yamlString := content[startIndex+4 : endIndex]
var frontMatter map[string]interface{}
err := yaml.Unmarshal([]byte(yamlString), &frontMatter)
if err != nil {
return nil, "", err
if len(delimiterIndices) > 0 {
startIndex := delimiterIndices[0][0]
endIndex := delimiterIndices[1][0]
yamlString := content[startIndex+4 : endIndex]
var frontMatter map[string]interface{}
err := yaml.Unmarshal([]byte(yamlString), &frontMatter)
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{
@ -81,8 +85,8 @@ func generateFunctionTypes() (string, error) {
}
frontMatter, body, err := parseFrontMatter(string(content))
if err != nil {
println("Error parsing front matter in", fPath)
return "", err
println("Error parsing front matter in", fPath, "error: ", err.Error())
continue
}
if frontMatter["ts_ignore"] == true {
continue