logginghandler/vendor/github.com/goreleaser/chglog/templates.go
Marvin Preuss d095180eb4
All checks were successful
continuous-integration/drone/push Build is passing
build: uses go modules for tool handling
2022-01-14 13:51:56 +01:00

75 lines
2.1 KiB
Go

package chglog
import (
"text/template"
"github.com/Masterminds/sprig"
)
const (
rpmTpl = `
{{- range .Entries }}{{$version := semver .Semver}}
* {{ date_in_zone "Mon Jan 2 2006" .Date "UTC" }} {{ .Packager }} - {{ $version.Major }}.{{ $version.Minor }}.{{ $version.Patch }}{{if $version.Prerelease}}-{{ $version.Prerelease }}{{end}}
{{- range .Changes }}{{$note := splitList "\n" .Note}}
- {{ first $note }}{{ range $i,$n := (rest $note) }}{{if ne $n "\n"}} {{$n}}{{end}}
{{end}}
{{- end }}
{{ end }}
`
debTpl = `{{- $name := .Name}}
{{- range .Entries }}
{{ $name }} ({{ .Semver }}){{if .Deb}} {{default "" (.Deb.Distributions | join " ")}}; urgency={{default "low" .Deb.Urgency}}{{end}}
{{- range .Changes }}{{$note := splitList "\n" .Note}}
* {{ first $note }}
{{- range $i,$n := (rest $note) }}
{{- if ne (trim $n) ""}}
- {{$n}}{{end}}
{{- end}}{{end}}
-- {{ .Packager }} {{ date_in_zone "Mon, 02 Jan 2006 03:04:05 -0700" .Date "UTC" }}
{{ end }}
`
releaseTpl = `
Changelog
=========
{{- with (first .Entries)}}
{{range .Changes }}{{$note := splitList "\n" .Note}}
{{substr 0 8 .Commit}} {{ first $note }}{{end}}
{{ end}}
`
repoTpl = `
{{- range .Entries }}
{{ .Semver }}
=============
{{ date_in_zone "2006-01-02" .Date "UTC" }}
{{range .Changes }}{{$note := splitList "\n" .Note}}
* {{ first $note }} ({{substr 0 8 .Commit}}){{end}}
{{ end}}
`
)
// LoadTemplateData load a template from string with all of the sprig.TxtFuncMap loaded.
func LoadTemplateData(data string) (*template.Template, error) {
return template.New("base").Funcs(sprig.TxtFuncMap()).Parse(data)
}
// DebTemplate load default debian template.
func DebTemplate() (*template.Template, error) {
return LoadTemplateData(debTpl)
}
// RPMTemplate load default RPM template.
func RPMTemplate() (*template.Template, error) {
return LoadTemplateData(rpmTpl)
}
// ReleaseTemplate load default release template.
func ReleaseTemplate() (*template.Template, error) {
return LoadTemplateData(releaseTpl)
}
// RepoTemplate load default repo template.
func RepoTemplate() (*template.Template, error) {
return LoadTemplateData(repoTpl)
}