(p []byte)
| 500 | } |
| 501 | |
| 502 | func (w *lazyFileWriter) Write(p []byte) (int, error) { |
| 503 | w.once.Do(func() { |
| 504 | f, err := os.Create(w.path) |
| 505 | if err != nil { |
| 506 | w.err = fmt.Errorf("create output file %s: %w", w.path, err) |
| 507 | return |
| 508 | } |
| 509 | w.file = f |
| 510 | if w.strip { |
| 511 | w.stripper = &stripAnsiWriter{dst: f} |
| 512 | } |
| 513 | }) |
| 514 | if w.err != nil { |
| 515 | return 0, w.err |
| 516 | } |
| 517 | var n int |
| 518 | var err error |
| 519 | if w.stripper != nil { |
| 520 | n, err = w.stripper.Write(p) |
| 521 | } else { |
| 522 | n, err = w.file.Write(p) |
| 523 | } |
| 524 | if err != nil && w.writeErr == nil { |
| 525 | w.writeErr = err |
| 526 | } |
| 527 | if err == nil && !w.hinted { |
| 528 | w.hinted = true |
| 529 | fmt.Fprintf(os.Stderr, "[ocr] Results written to %s\n", w.path) |
| 530 | } |
| 531 | return n, err |
| 532 | } |
| 533 | |
| 534 | // Err returns the first error encountered while creating or writing the |
| 535 | // underlying file, or nil if none occurred. Text-mode rendering drops the |
no outgoing calls