client232/cron.py
2018-11-27 10:56:41 +01:00

38 lines
919 B
Python
Executable file

#!/usr/bin/env python3
from crontab import CronTab
from datetime import time
import os
import csv
import sys
def whereami():
return os.path.dirname(os.path.abspath(__file__))
class Cron(CronTab):
def __init__(self, user=True):
CronTab.__init__(self, user=user)
def clearCron(self):
return self.remove_all()
def getJob(self, code):
return self.new(command="%s/send.py %s" % (whereami(), code))
def buildJob(self, code, minute=False, hour=False):
job = self.getJob(code)
job.setall(time(hour, minute))
job.enable()
def readCSV(self, path):
self.clearCron()
with open(path) as csvfile:
r = csv.DictReader(csvfile, [minute, hour, code])
for row in r:
self.buildJob(row["code"], row["minute"], row["hour"])
self.write()
if __name__ == "__main__":
Cron().readCSV(sys.argv[1])