@@ -5,6 +5,7 @@ package templates
5
5
6
6
import (
7
7
"context"
8
+ "fmt"
8
9
"html/template"
9
10
"regexp"
10
11
"strings"
@@ -33,7 +34,7 @@ func mailSubjectTextFuncMap() texttmpl.FuncMap {
33
34
}
34
35
}
35
36
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 {
37
38
// Split template into subject and body
38
39
var subjectContent []byte
39
40
bodyContent := content
@@ -42,20 +43,13 @@ func buildSubjectBodyTemplate(stpl *texttmpl.Template, btpl *template.Template,
42
43
subjectContent = content [0 :loc [0 ]]
43
44
bodyContent = content [loc [1 ]:]
44
45
}
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 )
51
48
}
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 )
58
51
}
52
+ return nil
59
53
}
60
54
61
55
// Mailer provides the templates required for sending notification mails.
@@ -87,7 +81,13 @@ func Mailer(ctx context.Context) (*texttmpl.Template, *template.Template) {
87
81
if firstRun {
88
82
log .Trace ("Adding mail template %s: %s by %s" , tmplName , assetPath , layerName )
89
83
}
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
+ }
91
91
}
92
92
}
93
93
0 commit comments