in internal/corpus/generator.go [197:233]
func (gc GeneratorCorpus) GenerateWithTemplate(templatePath, fieldsDefinitionPath string, totEvents uint64, timeNow time.Time, randSeed int64) (string, error) {
if err := gc.fs.MkdirAll(gc.location, corpusLocPerm); err != nil {
return "", fmt.Errorf("cannot generate corpus location folder: %v", err)
}
payloadFilename := path.Join(gc.location, gc.bulkPayloadFilenameWithTemplate(templatePath))
f, err := gc.fs.OpenFile(payloadFilename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, corpusPerm)
if err != nil {
return "", err
}
template, err := os.ReadFile(templatePath)
if err != nil {
return "", err
}
if len(template) == 0 {
return "", errors.New("you must provide a non empty template content")
}
ctx := context.Background()
flds, err := fields.LoadFieldsWithTemplate(ctx, fieldsDefinitionPath)
if err != nil {
return "", err
}
err = gc.eventsPayloadFromFields(template, flds, totEvents, timeNow, randSeed, nil, f)
if err != nil {
return "", err
}
if err := f.Close(); err != nil {
return "", err
}
return payloadFilename, err
}