-
Notifications
You must be signed in to change notification settings - Fork 0
/
releasenotes.go
64 lines (53 loc) · 1.51 KB
/
releasenotes.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package superclog
import (
"fmt"
"html/template"
"io"
"io/ioutil"
)
const (
// TemplateExternalRelease template for external releases
TemplateExternalRelease = "ExternalRelease"
// TemplateInternalQARelease template for internal QA releases
TemplateInternalQARelease = "InternalQARelease"
)
func TemplateReleaseNotes(w io.Writer, t *template.Template, commits []Commit, categories Categories) error {
//t := template.Must(template.New("markdown-internal-qa-release-notes.tmpl").ParseFiles("markdown-internal-qa-release-notes.tmpl"))
a := struct {
Commits []Commit
Categories Categories
}{
Commits: commits,
Categories: categories,
}
err := t.Execute(w, a)
if err != nil {
return err
}
return nil
}
func DefaultTemplate(name string) (*template.Template, error) {
var file string
switch name {
case TemplateExternalRelease:
file = "markdown-external-release-notes.tmpl"
case TemplateInternalQARelease:
file = "markdown-internal-qa-release-notes.tmpl"
default:
return nil, fmt.Errorf("template not known: %s", name)
}
f, err := Assets.Open(file)
if err != nil {
return nil, fmt.Errorf("built in template open: %s: %w", file, err)
}
bts, err := ioutil.ReadAll(f)
if err != nil {
return nil, fmt.Errorf("read file: %w", err)
}
t, err := template.New(file).Parse(string(bts))
if err != nil {
return nil, fmt.Errorf("parse template: %w", err)
}
return t, nil
//return template.New("markdown-internal-qa-release-notes.tmpl").ParseFiles("markdown-internal-qa-release-notes.tmpl")
}