replace tozd/errors with Southclaws/fault
1 file changed, 38 insertions(+), 34 deletions(-)
changed files
M internal/builder/builder.go → internal/builder/builder.go
@@ -19,8 +19,9 @@ "go.alanpearce.eu/homestead/internal/vcs" "go.alanpearce.eu/homestead/templates" "go.alanpearce.eu/x/log" + "github.com/Southclaws/fault" + "github.com/Southclaws/fault/fmsg" mapset "github.com/deckarep/golang-set/v2" - "gitlab.com/tozd/go/errors" ) type Options struct {@@ -38,20 +39,20 @@ return filepath.Join(src, rel) } } -func copyFile(storage storage.Writer, src string, rel string) errors.E { +func copyFile(storage storage.Writer, src string, rel string) error { buf := new(buffer.Buffer) sf, err := os.Open(src) if err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } defer sf.Close() buf.Reset() if _, err := io.Copy(buf, sf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } if err := storage.Write("/"+rel, "", buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } return nil@@ -61,7 +62,7 @@ func build( options *Options, config *config.Config, log *log.Logger, -) errors.E { +) error { buf := new(buffer.Buffer) joinSource := joinSourcePath(options.Source) storage := options.Storage@@ -80,7 +81,7 @@ PostDir: postDir, Repo: options.Repo, }, log.Named("content")) if err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } sitemap := sitemap.New(config)@@ -94,11 +95,11 @@ log.Debug("rendering post", "post", post.Basename) sitemap.AddPath(post.URL, post.Date) buf.Reset() if err := templates.PostPage(siteSettings, post).Render(buf); err != nil { - return errors.WithMessage(err, "could not render post") + return fault.Wrap(err, fmsg.With("could not render post")) } if err := storage.WritePost(post, buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } }@@ -108,10 +109,10 @@ if err := templates.TagsPage(siteSettings, templates.TagsPageVars{ Title: "Tags", Tags: mapset.Sorted(cc.Tags), }).Render(buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } if err := storage.Write("/tags/", "Tags", buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } sitemap.AddPath("/tags/", lastMod)@@ -129,10 +130,10 @@ if err := templates.TagPage(siteSettings, templates.TagPageVars{ Tag: tag, Posts: matchingPosts, }).Render(buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } if err = storage.Write(url, tag, buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } sitemap.AddPath(url, matchingPosts[0].Date)@@ -145,14 +146,14 @@ matchingPosts, tag, ) if err != nil { - return errors.WithMessage(err, "could not render tag feed page") + return fault.Wrap(err, fmsg.With("could not render tag feed page")) } buf.Reset() if _, err := feed.WriteTo(buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } if err := storage.Write(path.Join("/tags", tag, "atom.xml"), title, buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } }@@ -161,34 +162,37 @@ buf.Reset() if err := templates.ListPage(siteSettings, templates.ListPageVars{ Posts: cc.Posts, }).Render(buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } if err := storage.Write(path.Join("/", postDir)+"/", "Posts", buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } sitemap.AddPath(path.Join("/", postDir)+"/", lastMod) log.Debug("rendering feed") feed, err := template.RenderFeed(config.Title, config, cc.Posts, "feed") if err != nil { - return errors.WithMessage(err, "could not render feed") + return fault.Wrap(err, fmsg.With("could not render feed")) } buf.Reset() if _, err := feed.WriteTo(buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } if err := storage.Write("/atom.xml", config.Title, buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } for _, filename := range []string{"feed-styles.xsl", "style.css"} { buf.Reset() log.Debug("rendering template file", "filename", filename) if err := template.CopyFile(filename, buf); err != nil { - return errors.WithMessagef(err, "could not render template file %s", filename) + return fault.Wrap( + err, + fmsg.With(fmt.Sprintf("could not render template file %s", filename)), + ) } if err := storage.Write("/"+filename, "", buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } }@@ -201,17 +205,17 @@ Email: config.Email, Me: config.RelMe, Posts: cc.Posts, }, post).Render(buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } } else { if err := templates.Page(siteSettings, post).Render(buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } } file := storage.NewFileFromPost(post) file.ContentType = "text/html; charset=utf-8" if err := storage.WriteFile(file, buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } }@@ -220,26 +224,26 @@ // date would be wrong as the homepage has its own content file // without a date, which could be newer sitemap.AddPath("/", time.Time{}) if err := buf.SeekStart(); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } log.Debug("rendering sitemap") buf.Reset() if _, err := sitemap.WriteTo(buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } if err := storage.Write("/sitemap.xml", "sitemap", buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } log.Debug("rendering robots.txt") buf.Reset() err = template.RenderRobotsTXT(config.BaseURL, buf) if err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } if err := storage.Write("/robots.txt", "", buf); err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } for _, sf := range cc.StaticFiles {@@ -247,16 +251,16 @@ src := joinSource(sf) log.Debug("copying static file", "sf", sf, "src", src) err = copyFile(storage, src, sf) if err != nil { - return errors.WithStack(err) + return fault.Wrap(err) } } return nil } -func BuildSite(options *Options, cfg *config.Config, log *log.Logger) errors.E { +func BuildSite(options *Options, cfg *config.Config, log *log.Logger) error { if cfg == nil { - return errors.New("config is nil") + return fault.New("config is nil") } return build(options, cfg, log)