in internal/corpus/generator.go [109:162]
func (gc GeneratorCorpus) eventsPayloadFromFields(template []byte, fields Fields, totEvents uint64, timeNow time.Time, randSeed int64, createPayload []byte, f afero.File) error {
genlib.InitGeneratorTimeNow(timeNow)
genlib.InitGeneratorRandSeed(randSeed)
var evgen genlib.Generator
var err error
if len(template) == 0 {
evgen, err = genlib.NewGenerator(gc.config, fields, totEvents)
} else {
if gc.templateType == templateTypeCustom {
evgen, err = genlib.NewGeneratorWithCustomTemplate(template, gc.config, fields, totEvents)
} else if gc.templateType == templateTypeGoText {
evgen, err = genlib.NewGeneratorWithTextTemplate(template, gc.config, fields, totEvents)
} else {
return ErrNotValidTemplate
}
}
if err != nil {
return err
}
var buf *bytes.Buffer
if len(template) == 0 {
buf = bytes.NewBuffer(createPayload)
} else {
buf = bytes.NewBufferString("")
}
defer func() {
_ = evgen.Close()
}()
for {
buf.Truncate(len(createPayload))
err := evgen.Emit(buf)
if err == nil {
buf.WriteByte('\n')
if _, err = f.Write(buf.Bytes()); err != nil {
return err
}
}
if err == io.EOF {
return nil
}
if err != nil {
return err
}
}
}