From f36889e67c916b4518750ac4167a8192fca958b4 Mon Sep 17 00:00:00 2001 From: Nick White Date: Fri, 13 Dec 2019 13:15:11 +0000 Subject: Print stdout and stderr output when tesseract fails --- cmd/bookpipeline/main.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'cmd') diff --git a/cmd/bookpipeline/main.go b/cmd/bookpipeline/main.go index aa6853f..0d310f1 100644 --- a/cmd/bookpipeline/main.go +++ b/cmd/bookpipeline/main.go @@ -1,6 +1,7 @@ package main import ( + "bytes" "errors" "flag" "fmt" @@ -171,12 +172,15 @@ func ocr(training string) func(chan string, chan string, chan error, *log.Logger logger.Println("OCRing", path) name := strings.Replace(path, ".png", "", 1) cmd := exec.Command("tesseract", "-l", training, path, name, "hocr") + var stdout, stderr bytes.Buffer + cmd.Stdout = &stdout + cmd.Stderr = &stderr err := cmd.Run() if err != nil { for range toocr { } // consume the rest of the receiving channel so it isn't blocked close(up) - errc <- errors.New(fmt.Sprintf("Error ocring %s: %s", path, err)) + errc <- errors.New(fmt.Sprintf("Error ocring %s: %s\nStdout: %s\nStderr: %s\n", path, err, stdout.String(), stderr.String())) return } up <- name + ".hocr" -- cgit v1.2.1-24-ge1ad