@@ -5,6 +5,7 @@ package templates
55
66import (
77 "context"
8+ "fmt"
89 "html/template"
910 "regexp"
1011 "strings"
@@ -33,7 +34,7 @@ func mailSubjectTextFuncMap() texttmpl.FuncMap {
3334 }
3435}
3536
36- func buildSubjectBodyTemplate (stpl * texttmpl.Template , btpl * template.Template , name string , content []byte ) {
37+ func buildSubjectBodyTemplate (stpl * texttmpl.Template , btpl * template.Template , name string , content []byte ) error {
3738 // Split template into subject and body
3839 var subjectContent []byte
3940 bodyContent := content
@@ -42,20 +43,13 @@ func buildSubjectBodyTemplate(stpl *texttmpl.Template, btpl *template.Template,
4243 subjectContent = content [0 :loc [0 ]]
4344 bodyContent = content [loc [1 ]:]
4445 }
45- if _ , err := stpl .New (name ).
46- Parse (string (subjectContent )); err != nil {
47- log .Error ("Failed to parse template [%s/subject]: %v" , name , err )
48- if ! setting .IsProd {
49- log .Fatal ("Please fix the mail template error" )
50- }
46+ if _ , err := stpl .New (name ).Parse (string (subjectContent )); err != nil {
47+ return fmt .Errorf ("failed to parse template [%s/subject]: %w" , name , err )
5148 }
52- if _ , err := btpl .New (name ).
53- Parse (string (bodyContent )); err != nil {
54- log .Error ("Failed to parse template [%s/body]: %v" , name , err )
55- if ! setting .IsProd {
56- log .Fatal ("Please fix the mail template error" )
57- }
49+ if _ , err := btpl .New (name ).Parse (string (bodyContent )); err != nil {
50+ return fmt .Errorf ("failed to parse template [%s/body]: %w" , name , err )
5851 }
52+ return nil
5953}
6054
6155// Mailer provides the templates required for sending notification mails.
@@ -87,7 +81,13 @@ func Mailer(ctx context.Context) (*texttmpl.Template, *template.Template) {
8781 if firstRun {
8882 log .Trace ("Adding mail template %s: %s by %s" , tmplName , assetPath , layerName )
8983 }
90- buildSubjectBodyTemplate (subjectTemplates , bodyTemplates , tmplName , content )
84+ if err = buildSubjectBodyTemplate (subjectTemplates , bodyTemplates , tmplName , content ); err != nil {
85+ if firstRun {
86+ log .Fatal ("Failed to parse mail template, err: %v" , err )
87+ } else {
88+ log .Error ("Failed to parse mail template, err: %v" , err )
89+ }
90+ }
9191 }
9292 }
9393
0 commit comments