37 lines
919 B
Python
Executable file
37 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])
|