diff --git a/main.go b/main.go index 9eb84dd..fd453ee 100644 --- a/main.go +++ b/main.go @@ -134,7 +134,7 @@ func main() { rand.Seed(time.Now().UnixNano()) if tmpl := findTemplate(*templateFlag); tmpl != "" { - if err := fakedata.ExecuteTemplate(tmpl, *limitFlag); err != nil { + if err := fakedata.ExecuteTemplate(tmpl, *limitFlag, *streamFlag); err != nil { fmt.Println(err) os.Exit(1) } diff --git a/pkg/fakedata/template.go b/pkg/fakedata/template.go index 18b0281..23dc7fc 100644 --- a/pkg/fakedata/template.go +++ b/pkg/fakedata/template.go @@ -84,14 +84,23 @@ func (tf templateFactory) getFunctions() template.FuncMap { } // ExecuteTemplate takes a tmpl string and a n int and generates n rows of based -// on the specified tmpl -func ExecuteTemplate(tmpl string, n int) (err error) { +// on the specified tmpl. Will loop forever if streamMode is true +func ExecuteTemplate(tmpl string, n int, streamMode bool) (err error) { f := newTemplateFactory() t, err := template.New("template").Funcs(f.getFunctions()).Parse(tmpl) if err != nil { return err } + if streamMode { + for { + err = t.Execute(os.Stdout, nil) + if err != nil { + return err + } + } + } + for i := 1; i <= n; i++ { err = t.Execute(os.Stdout, nil) if err != nil {