Skip to content
Snippets Groups Projects
main.cpp 1.73 KiB
Newer Older
akiraohgaki's avatar
akiraohgaki committed
#include <QStringList>
akiraohgaki's avatar
akiraohgaki committed
#include <QJsonObject>
//#include <QTranslator>
//#include <QLocale>
#include <QCommandLineParser>
akiraohgaki's avatar
akiraohgaki committed
#include <QCommandLineOption>
akiraohgaki's avatar
akiraohgaki committed
#include <QCoreApplication>

#include "handlers/confighandler.h"
akiraohgaki's avatar
akiraohgaki committed
//#include "handlers/systemhandler.h"
//#include "handlers/ocshandler.h"
//#include "handlers/itemhandler.h"
akiraohgaki's avatar
akiraohgaki committed
#include "websockets/websocketserver.h"
akiraohgaki's avatar
akiraohgaki committed

int main(int argc, char *argv[])
{
    // Init
    QCoreApplication app(argc, argv);

akiraohgaki's avatar
akiraohgaki committed
    ConfigHandler *configHandler = new ConfigHandler(&app);
akiraohgaki's avatar
akiraohgaki committed
    QJsonObject appConfigApplication = configHandler->getAppConfigApplication();

    app.setApplicationName(appConfigApplication["name"].toString());
    app.setApplicationVersion(appConfigApplication["version"].toString());
    app.setOrganizationName(appConfigApplication["organization"].toString());
    app.setOrganizationDomain(appConfigApplication["domain"].toString());

    // Setup translator
    //QTranslator translator;
    //if (translator.load(QLocale(), "messages", ".", ":/i18n")) {
    //    app.installTranslator(&translator);
    //}

    // Setup CLI
    QCommandLineParser clParser;
    clParser.setApplicationDescription(appConfigApplication["description"].toString());
    clParser.addHelpOption();
    clParser.addVersionOption();
akiraohgaki's avatar
akiraohgaki committed
    QCommandLineOption clPortOption(QStringList() << "p" << "port", "Port for websocket server [default: 443].", "port", "443");
    clParser.addOption(clPortOption);
akiraohgaki's avatar
akiraohgaki committed
    clParser.process(app);

akiraohgaki's avatar
akiraohgaki committed
    int port = clParser.value(clPortOption).toInt();

akiraohgaki's avatar
akiraohgaki committed
    // Setup websocket server
akiraohgaki's avatar
akiraohgaki committed
    WebSocketServer *webSocketServer = new WebSocketServer(appConfigApplication["id"].toString(), port, &app);
    if (!webSocketServer->start()) {
akiraohgaki's avatar
akiraohgaki committed
        qFatal(webSocketServer->errorString());
akiraohgaki's avatar
akiraohgaki committed
    }
akiraohgaki's avatar
akiraohgaki committed
    return app.exec();
}