X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/bd7da3557dc7a17020931f5a49ed5007fa81a645..98d137c3e945a09f76e85bd18238558c668fdca4:/schedule.go?ds=sidebyside diff --git a/schedule.go b/schedule.go index 23462d2..3c3456d 100644 --- a/schedule.go +++ b/schedule.go @@ -286,7 +286,12 @@ func (s *Schedules) Done(schedule Schedule, now time.Time) error { if schedule.Cron == "" { s.file.Schedules = slices.Delete(s.file.Schedules, index, index+1) - return s.save() + err := s.save() + if err != nil { + return fmt.Errorf("save completed one-time schedule: %w", err) + } + + return nil } cron, err := scheduleParseCron(schedule.Cron) @@ -298,12 +303,22 @@ func (s *Schedules) Done(schedule Schedule, now time.Time) error { if !found { s.file.Schedules = slices.Delete(s.file.Schedules, index, index+1) - return s.save() + err = s.save() + if err != nil { + return fmt.Errorf("save exhausted schedule: %w", err) + } + + return nil } s.file.Schedules[index].Due = next - return s.save() + err = s.save() + if err != nil { + return fmt.Errorf("save next schedule run: %w", err) + } + + return nil } // sorted returns a copy of the schedules by due time, then by ID.