in cmd/wfnconvert/wfnconvert.go [146:176]
func processLines(ctx context.Context, o *options, in <-chan []string, out chan<- []string) func() error {
return func() error {
var (
ss []string
more bool
)
for {
select {
case ss, more = <-in:
if !more {
return nil
}
case <-ctx.Done():
return ctx.Err()
}
if len(ss) == 0 {
continue
}
s, err := process(ss[0], o)
if err != nil {
return fmt.Errorf("could not process %q: %v", ss[0], err)
}
ss[0] = s
select {
case out <- ss:
case <-ctx.Done():
return ctx.Err()
}
}
}
}