replace tozd/errors with Southclaws/fault
1 file changed, 16 insertions(+), 14 deletions(-)
changed files
M internal/calendar/calendar.go → internal/calendar/calendar.go
@@ -2,6 +2,7 @@ package calendar import ( "context" + "errors" "fmt" "io" "io/fs"@@ -10,8 +11,9 @@ "os" "slices" "time" + "github.com/Southclaws/fault" + "github.com/Southclaws/fault/fmsg" ical "github.com/arran4/golang-ical" - "gitlab.com/tozd/go/errors" "go.alanpearce.eu/x/log" "go.alanpearce.eu/homestead/internal/cache"@@ -71,7 +73,7 @@ } stat, err := cache.Root.Stat(Filename) if err != nil && !errors.Is(err, fs.ErrNotExist) { - return false, errors.WithMessage(err, "could not stat calendar file") + return false, fault.Wrap(err, fmsg.With("could not stat calendar file")) } return stat != nil && time.Since(stat.ModTime()) < Refresh && stat.Size() > 0, nil@@ -99,52 +101,52 @@ c.Calendar, err = ical.ParseCalendar(f) if err != nil { c.log.Warn("error parsing calendar", "error", err) - return errors.WithMessage(err, "could not parse calendar") + return fault.Wrap(err, fmsg.With("could not parse calendar")) } return err } -func (c *Calendar) open() (*os.File, errors.E) { +func (c *Calendar) open() (*os.File, error) { f, err := cache.Root.Open(Filename) if err != nil { - return nil, errors.WithMessage(err, "could not open calendar file") + return nil, fault.Wrap(err, fmsg.With("could not open calendar file")) } return f, nil } -func (c *Calendar) fetch(ctx context.Context) errors.E { +func (c *Calendar) fetch(ctx context.Context) error { c.log.Debug("fetching calendar", "url", c.opts.URL.String()) f, err := cache.Root.OpenFile(Filename, os.O_RDWR|os.O_CREATE, 0o600) if err != nil { - return errors.WithMessage(err, "could not create temp file") + return fault.Wrap(err, fmsg.With("could not create temp file")) } defer f.Close() req, err := http.NewRequestWithContext(ctx, http.MethodGet, c.opts.URL.String(), nil) if err != nil { - return errors.WithMessage(err, "could not create request") + return fault.Wrap(err, fmsg.With("could not create request")) } res, err := c.client.Do(req) if err != nil { - return errors.WithMessage(err, "could not fetch calendar") + return fault.Wrap(err, fmsg.With("could not fetch calendar")) } defer res.Body.Close() if res.StatusCode != http.StatusOK { - return errors.New(fmt.Sprintf("unexpected status code %d", res.StatusCode)) + return fault.New(fmt.Sprintf("unexpected status code %d", res.StatusCode)) } if _, err := io.Copy(f, res.Body); err != nil { - return errors.WithMessage(err, "could not write calendar to file") + return fault.Wrap(err, fmsg.With("could not write calendar to file")) } err = f.Sync() if err != nil { - return errors.WithMessage(err, "could not sync file") + return fault.Wrap(err, fmsg.With("could not sync file")) } return nil@@ -152,7 +154,7 @@ } func (c *Calendar) EventsBetween(from time.Time, to time.Time) ([]*Busy, error) { if c.Calendar == nil { - return nil, errors.New("calendar not initialised") + return nil, fault.New("calendar not initialised") } in := c.Busys()@@ -235,7 +237,7 @@ cd := &CalendarDate{Date: date} evs, err := c.EventsBetween(date.Add(1*time.Second), date.EndOfDay().Time) if err != nil { - return nil, errors.WithMessage(err, "could not get events") + return nil, fault.Wrap(err, fmsg.With("could not get events")) } for _, ev := range evs {