From: C. Hoeppler Date: Thu, 13 Oct 2016 05:34:47 +0000 (+0200) Subject: Add logging of asciidoc/-tor errors X-Git-Tag: v0.18~199 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=9f9b93af2c379b10d2d5c514cfe5f0658795b9bb;p=brevno-suite%2Fhugo Add logging of asciidoc/-tor errors Add logging of the errors which asciidoc and asciidoctor output to their stderr stream when converting asciidoc documents. Note that asciidoctor's exit code may be SUCCESS even if there are ERROR messages in its stderr output (tested with Asciidoctor 0.1.4 and 1.5.5). Therefore log the stderr output whenever it is non-empty. See #2399 --- diff --git a/helpers/content.go b/helpers/content.go index afefb604..f2909f20 100644 --- a/helpers/content.go +++ b/helpers/content.go @@ -546,9 +546,19 @@ func getAsciidocContent(content []byte) []byte { jww.INFO.Println("Rendering with", path, "...") cmd := exec.Command(path, "--no-header-footer", "--safe", "-") cmd.Stdin = bytes.NewReader(cleanContent) - var out bytes.Buffer + var out, cmderr bytes.Buffer cmd.Stdout = &out - if err := cmd.Run(); err != nil { + cmd.Stderr = &cmderr + err := cmd.Run() + // asciidoctor has exit code 0 even if there are errors in stderr + // -> log stderr output regardless of state of err + for _, item := range strings.Split(string(cmderr.Bytes()), "\n") { + item := strings.TrimSpace(item) + if item != "" { + jww.ERROR.Println(item) + } + } + if err != nil { jww.ERROR.Println(err) }