Skip to content
Snippets Groups Projects
main.py 1.81 KiB
Newer Older
Jakub Štercl's avatar
Jakub Štercl committed
#!/usr/bin/env python3
Jakub Štercl's avatar
Jakub Štercl committed
import sys
import database_create
from argparse import ArgumentParser
Jakub Štercl's avatar
Jakub Štercl committed
from PyQt5 import QtWidgets as Qt
from PyQt5.QtCore import QTranslator
Jakub Štercl's avatar
Jakub Štercl committed
from controllers.mainwindow_controller import MainWindow
Jakub Štercl's avatar
Jakub Štercl committed
from database import Database
from globals import Global
Jakub Štercl's avatar
Jakub Štercl committed


def main():
    script_path = os.path.dirname(os.path.abspath(__file__))
    parser = ArgumentParser()
    parser.add_argument(
        '-d',
        '--database',
        default=script_path + '/database.db',
        help='use specified file as database file, if not specified the default file (script_path/database.db} is used',
        metavar='PATH'
    )
    parser.add_argument(
        '-fc',
        '--force-database-create',
        action='store_true',
        help='force creation of database - program then overwrites file specified in -d or the default one!'
    )
    args = parser.parse_args()
    # clear and create database if -fc was given or create database if given file doesn't exist
    if args.force_database_create is True or not os.path.isfile(args.database):
        if os.path.isfile(args.database):
            overwrite = input("Are you sure, you want to overwrite file '" + args.database + "'?[Y/N]\n")
            if overwrite != 'Y':
                exit()
            os.remove(args.database)
        database_create.create_db(args.database)

    try:
        Global.db = Database(args.database)
    except (sqlite3.DatabaseError, sqlite3.OperationalError) as e:
        print('The specified database file is invalid.\nTry rerunning with -fc?')
        exit()
Jakub Štercl's avatar
Jakub Štercl committed
    app = Qt.QApplication(sys.argv)
    translator.load(script_path + "translations/czech.qm")
    app.installTranslator(translator)
Jakub Štercl's avatar
Jakub Štercl committed
    form = MainWindow()
    form.show()
    app.exec_()
Jakub Štercl's avatar
Jakub Štercl committed

if __name__ == '__main__':