import os
import sys
import schedule
import time
from bot.config import BotProjects
from bot.zephyr import main as zephyr
from bot.mynewt import main as mynewt
weekdays2schedule = {
'monday': schedule.every().monday,
'tuesday': schedule.every().tuesday,
'wednesday': schedule.every().wednesday,
'thursday': schedule.every().thursday,
'friday': schedule.every().friday,
'saturday': schedule.every().saturday,
'sunday': schedule.every().sunday,
}
project2main = {
'zephyr': zephyr,
'mynewt': mynewt,
}
def main():
for project in BotProjects:
if 'scheduler' in project:
for day, time_ in project['scheduler'].items():
weekdays2schedule[day].at(time_).do(
project2main[project['name']], project)
while True:
schedule.run_pending()
time.sleep(60)
else:
project2main[project['name']](project)
if __name__ == "__main__":
if os.geteuid() == 0:
print("Please do not run this program as root.")
sys.exit(1)
try:
main()
os._exit(0)
except KeyboardInterrupt:
os._exit(14)
except SystemExit:
raise
except BaseException:
import traceback
traceback.print_exc()
os._exit(16)