#!/usr/bin/env python3

import logging
import os
import sys
import time

delay = 2


def restart_apache():
    os.system("systemctl reload-or-restart apache2")


def run_monitor(filename):
    while True:
        if os.path.exists(filename):
            logging.info("restarting apache")
            restart_apache()
            time.sleep(delay)
            os.remove(filename)
        time.sleep(delay)


def main():
    logging.basicConfig(level=logging.INFO, format='%(asctime)s: %(message)s')
    if len(sys.argv) < 2:
        raise Exception('No monitor filename')
    monitor_filename = sys.argv[1]
    monitor_dir = os.path.dirname(monitor_filename)
    if not os.path.isdir(monitor_dir):
        raise Exception(f'directory not exist: {monitor_dir}')
    if not os.access(monitor_dir, os.W_OK):
        raise Exception(f'directory not writable: {monitor_dir}')
    run_monitor(monitor_filename)


if __name__ == "__main__":
    main()