| 523 | } |
| 524 | |
| 525 | func (r *Runner) OutputHandler() { |
| 526 | go func() { |
| 527 | for { |
| 528 | select { |
| 529 | case bl, ok := <-r.OutputCh: |
| 530 | if !ok { |
| 531 | return |
| 532 | } |
| 533 | if r.DumpFile != nil { |
| 534 | r.DumpFile.SafeWrite(bl.ToJson() + "\n") |
| 535 | r.DumpFile.SafeSync() |
| 536 | } |
| 537 | if bl.IsValid { |
| 538 | r.Output(bl) |
| 539 | if bl.Recu { |
| 540 | r.AddRecursive(bl) |
| 541 | } |
| 542 | } else { |
| 543 | if r.Color { |
| 544 | logs.Log.Debug(bl.ColorString()) |
| 545 | } else { |
| 546 | logs.Log.Debug(bl.String()) |
| 547 | } |
| 548 | } |
| 549 | r.OutWg.Done() |
| 550 | } |
| 551 | } |
| 552 | }() |
| 553 | |
| 554 | go func() { |
| 555 | for { |
| 556 | select { |
| 557 | case bl, ok := <-r.FuzzyCh: |
| 558 | if !ok { |
| 559 | return |
| 560 | } |
| 561 | if r.Fuzzy { |
| 562 | r.Output(bl) |
| 563 | } |
| 564 | r.OutWg.Done() |
| 565 | } |
| 566 | } |
| 567 | }() |
| 568 | } |