func bindDBBackupCron(app *prago.App) { app.AddCronTask("backup db", func() { err := extensions.BackupApp(app) if err != nil { app.Log().Error("Error while creating backup:", err) } }, func(t time.Time) time.Time { return t.AddDate(0, 0, 1) }) app.AddCronTask("remove old backups", func() { app.Log().Println("Removing old backups") deadline := time.Now().AddDate(0, 0, -7) backupPath := app.DotPath() + "/backups" files, err := ioutil.ReadDir(backupPath) if err != nil { app.Log().Println("error while removing old backups:", err) return } for _, file := range files { if file.ModTime().Before(deadline) { removePath := backupPath + "/" + file.Name() err := os.RemoveAll(removePath) if err != nil { app.Log().Println("Error while removing old backup file:", err) } } } app.Log().Println("Old backups removed") }, func(t time.Time) time.Time { return t.Add(1 * time.Hour) }) }