in cmd/celfmt/main.go [220:251]
func findProgramYAML(s string) (prefix, program, suffix string, err error) {
var yn yaml.Node
idx := strings.Index(s, "\nprogram: |")
if idx < 0 {
if !strings.HasPrefix(s, "program: |") {
return
}
// idx is -1 so the inc that follows
// brings us to the start of the string.
}
idx++
prefix = s[:idx]
program = s[idx:]
err = yaml.Unmarshal([]byte(program), &yn)
if err != nil {
return "", "", "", err
}
next := findNext(&yn, "program")
if next == nil {
return prefix, program, "", nil
}
suffix = s[idx:]
for l := 1; l < next.Line; l++ {
var ok bool
_, suffix, ok = strings.Cut(suffix, "\n")
if !ok {
break
}
}
program = strings.TrimSuffix(program, suffix)
return prefix, program, suffix, nil
}