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