X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/bd7da3557dc7a17020931f5a49ed5007fa81a645..8707a09fee94c97e29d668d24fb9713373913e0b:/schedule.go?ds=inline 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.