Files

64 lines
1.2 KiB
C++
Raw Permalink Normal View History

2020-12-16 06:02:22 +03:00
#include <QDir>
#include "version.h"
2020-12-26 15:03:51 +03:00
#include "localserver.h"
#include "logger.h"
2020-12-26 23:17:20 +03:00
#include "systemservice.h"
#include "utilities.h"
2020-12-16 06:02:22 +03:00
#ifdef Q_OS_WIN
#include "platforms/windows/daemon/windowsdaemontunnel.h"
namespace {
int s_argc = 0;
char** s_argv = nullptr;
} // namespace
#endif
2021-09-30 15:56:48 +03:00
2020-12-26 23:17:20 +03:00
int runApplication(int argc, char** argv)
{
QCoreApplication app(argc,argv);
2021-09-30 15:56:48 +03:00
#ifdef Q_OS_WIN
if(argc > 2){
s_argc = argc;
s_argv = argv;
QStringList tokens;
for (int i = 1; i < argc; ++i) {
tokens.append(QString(argv[i]));
}
if (!tokens.empty() && tokens[0] == "tunneldaemon") {
WindowsDaemonTunnel *daemon = new WindowsDaemonTunnel();
daemon->run(tokens);
}
}
#endif
LocalServer localServer;
2020-12-26 23:17:20 +03:00
return app.exec();
2020-12-26 23:17:20 +03:00
}
2021-09-30 15:56:48 +03:00
2020-12-16 06:02:22 +03:00
int main(int argc, char **argv)
{
Utils::initializePath(Logger::systemLogDir());
2020-12-26 15:03:51 +03:00
if (argc >= 2) {
2020-12-26 15:03:51 +03:00
qInfo() << "Started as console application";
2020-12-26 23:17:20 +03:00
return runApplication(argc, argv);
2021-09-30 15:56:48 +03:00
}
else {
2020-12-26 15:03:51 +03:00
qInfo() << "Started as system service";
2020-12-26 23:17:20 +03:00
#ifdef Q_OS_WIN
2020-12-26 15:03:51 +03:00
SystemService systemService(argc, argv);
return systemService.exec();
2020-12-26 23:17:20 +03:00
#else
2021-09-30 15:56:48 +03:00
return runApplication(argc, argv);
2020-12-26 23:17:20 +03:00
#endif
2020-12-26 15:03:51 +03:00
}
2020-12-16 06:02:22 +03:00
}