Files
i3status-go/internal/lib/cron.go
2024-09-23 19:05:45 +03:00

46 lines
833 B
Go

package lib
import (
"log"
"github.com/go-co-op/gocron/v2"
)
// myCron contains cron handler.
var myCron gocron.Scheduler
// RunCron parses config part, related to cron tasks and kicks cron to run.
func (c MyConfig) RunCron() {
var err error
myCron, err = gocron.NewScheduler()
if err != nil {
log.Printf("Unable to create built-in cron: %s", err)
return
}
for _, job := range c.Cron.Tasks {
_, err := myCron.NewJob(
gocron.CronJob(job.Time, false),
gocron.NewTask(
// Сука, просто заспавнить бинарь, ну почему это надо делать через жопу-то?
any(
func() bool {
c.Channels.RunChan <- job.Cmd
return true
},
),
),
)
if err != nil {
log.Printf("Unable to add cron job: %s", err)
}
}
myCron.Start()
}