repoindex/main.cpp

55 lines
1.6 KiB
C++
Raw Normal View History

2015-08-10 22:46:01 +02:00
#include "alpm/manager.h"
#include "alpm/utilities.h"
#include "alpm/config.h"
#include "network/server.h"
#include <c++utilities/application/argumentparser.h>
#include <c++utilities/application/failure.h>
#include <QCoreApplication>
#include <iostream>
using namespace std;
using namespace ApplicationUtilities;
using namespace PackageManagement;
using namespace Network;
int main(int argc, char *argv[])
{
// setup the argument parser
ArgumentParser parser;
ConfigArgs configArgs(parser);
parser.setIgnoreUnknownArguments(false);
// parse command line arguments
try {
parser.parseArgs(argc, argv);
} catch (Failure &e) {
cerr << "Unable to parse arguments: " << e.what() << endl;
return 2;
}
try {
// load configuration
Config config;
config.loadFromConfigFile(configArgs);
config.loadFromArgs(configArgs);
// run websocket server
if(configArgs.serverArg.isPresent()) {
// setup ALPM
Manager alpmManager(config);
alpmManager.parsePacmanConfig();
// setup the server
QCoreApplication application(argc, argv);
Server server(alpmManager, config);
QObject::connect(&server, &Server::closed, &application, &QCoreApplication::quit);
// run Qt loop
return application.exec();
} else {
cout << "No command line arguments specified. See --help for available commands." << endl;
}
} catch (std::exception &e) {
cerr << "Error: " << e.what() << endl;
return 1;
}
}