diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index e83476eae..7a940fc84 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -19,7 +19,6 @@ package engine import ( "bytes" "fmt" - "log" "path" "sort" "strings" @@ -197,7 +196,7 @@ func (e *Engine) alterFuncMap(t *template.Template) template.FuncMap { } // render takes a map of templates/values and renders them. -func (e *Engine) render(tpls map[string]renderable) (map[string]string, error) { +func (e *Engine) render(tpls map[string]renderable) (rendered map[string]string, err error) { // Basically, what we do here is start with an empty parent template and then // build up a list of templates -- one for each file. Once all of the templates // have been parsed, we loop through again and execute every template. @@ -206,8 +205,8 @@ func (e *Engine) render(tpls map[string]renderable) (map[string]string, error) { // to share common blocks, but to make the entire thing feel like a file-based // template engine. defer func() { - if err := recover(); err != nil { - log.Printf("rendering template failed: %v\n", err) + if r := recover(); r != nil { + err = fmt.Errorf("rendering template failed: %v", r) } }() t := template.New("gotpl") @@ -247,7 +246,7 @@ func (e *Engine) render(tpls map[string]renderable) (map[string]string, error) { } } - rendered := make(map[string]string, len(files)) + rendered = make(map[string]string, len(files)) var buf bytes.Buffer for _, file := range files { // Don't render partials. We don't care out the direct output of partials.