#!/usr/bin/python3

import logging

import os
import sys

from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox
from PyQt5.QtGui import QIcon
from school_ringer_modules.config import config_path, icon_file, debug
from school_ringer_modules.sound import get_music_for_breaks
from school_ringer_modules.system import user, run_command

# Директория приложения
basedir = os.path.dirname(__file__)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setWindowIcon(QIcon(os.path.join(basedir, icon_file)))
    try:
        if not debug:
            if user != 'root':
                err_window = QWidget()
                error_box = QMessageBox.critical(err_window, "Ошибка", f'Попытка запуска без root')
                sys.exit(0)
        from school_ringer_modules.settings import CallsSettings

        # Создание папки с конфигом, если её нет
        run_command(f'mkdir -p {config_path}')

        # Настройка логирования
        for handler in logging.root.handlers[:]:
            logging.root.removeHandler(handler)
        logging.basicConfig(
            filename=f"{config_path}/log.txt",
            format=u'%(asctime)s %(filename)s [LINE:%(lineno)d] [%(funcName)s()] #%(levelname)-15s %(message)s',
            level=logging.INFO,
        )
        ex = CallsSettings(app)
        app.exec_()
        logging.info(f'Приложение завершило работу')
    except Exception as e:
        error_box = QMessageBox.critical(QWidget(), "Ошибка", f'({e})')
        logging.info(f'Root exception: ({e})')
    sys.exit(app)
