simplify rendering of robots.txt
2 files changed, 10 insertions(+), 18 deletions(-)
M internal/builder/builder.go → internal/builder/builder.go
@@ -234,12 +234,8 @@ } log.Debug("rendering robots.txt") buf.Reset() - rob, err := template.RenderRobotsTXT(config) + err = template.RenderRobotsTXT(config.BaseURL, buf) if err != nil { - return errors.WithStack(err) - } - buf.Reset() - if _, err := io.Copy(buf, rob); err != nil { return errors.WithStack(err) } if err := storage.Write("/robots.txt", "", buf); err != nil {
M internal/builder/template/template.go → internal/builder/template/template.go
@@ -43,23 +43,19 @@ func (q *QueryDocument) Find(selector string) *QuerySelection { return &QuerySelection{q.Document.Find(selector)} } -func RenderRobotsTXT(config *config.Config) (io.Reader, errors.E) { - r, w := io.Pipe() +func RenderRobotsTXT(baseURL config.URL, w io.Writer) errors.E { tpl, err := template.ParseFS(templates.Files, "robots.tmpl") if err != nil { - return nil, errors.WithStack(err) + return errors.WithStack(err) } - go func() { - err = tpl.Execute(w, map[string]interface{}{ - "BaseURL": config.BaseURL, - }) - if err != nil { - w.CloseWithError(err) - } - w.Close() - }() + err = tpl.Execute(w, map[string]any{ + "BaseURL": baseURL, + }) + if err != nil { + return errors.WithStack(err) + } - return r, nil + return nil } func RenderFeed(