1
0
Fork 0
mirror of https://github.com/Luzifer/repo-template.git synced 2024-11-10 08:30:03 +00:00
repo-template/template.go
Knut Ahlers 2ac6bd1366
Add has_topic filter for conditional templates
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2019-04-15 20:39:24 +02:00

43 lines
1,003 B
Go

package main
import (
"strings"
"github.com/flosch/pongo2"
"github.com/google/go-github/github"
"github.com/gosimple/slug"
)
func init() {
pongo2.RegisterFilter("has_topic", tplRepoHasTopic)
pongo2.RegisterFilter("groovy_save", tplGroovyFileSave)
pongo2.RegisterFilter("slugify", tplSlugify)
}
func tplSlugify(in, param *pongo2.Value) (*pongo2.Value, *pongo2.Error) {
return pongo2.AsValue(slug.Make(in.String())), nil
}
func tplGroovyFileSave(in, param *pongo2.Value) (*pongo2.Value, *pongo2.Error) {
return pongo2.AsValue(strings.Replace(in.String(), "-", "_", -1)), nil
}
func tplRepoHasTopic(in, param *pongo2.Value) (*pongo2.Value, *pongo2.Error) {
repo, ok := in.Interface().(*github.Repository)
if !ok {
return nil, &pongo2.Error{
Sender: "filter:has_topic",
ErrorMsg: "Input was no github.Repository",
}
}
topic := param.String()
for _, t := range repo.Topics {
if t == topic {
return pongo2.AsValue(true), nil
}
}
return pongo2.AsValue(false), nil
}