#!/usr/bin/env python3
import time
import sys
import schedule
import traceback

sys.path.append(".")

from lifeguard.logger import lifeguard_logger as logger
from lifeguard.validations import load_validations, VALIDATIONS


def start_scheduler():

    for validation in VALIDATIONS:
        content = VALIDATIONS[validation]
        if "every" in content["schedule"]:
            if "minutes" in content["schedule"]["every"]:
                schedule.every(content["schedule"]["every"]["minutes"]).minutes.do(
                    content["ref"]
                )

    while True:
        time.sleep(1)
        try:
            schedule.run_pending()
        except Exception as exception:
            logger.error(
                "error on execute scheduler %s",
                str(exception),
                extra={"traceback": traceback.format_exc()},
            )


if __name__ == "__main__":
    load_validations()
    start_scheduler()
