diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2015-09-22 19:45:52 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2015-09-22 19:45:52 +0200 |
| commit | 21b385a546b2bf5c3102de73aa2ce0b2d35c426f (patch) | |
| tree | db30b4518e4ae235f4b651a8ccfca16582d45aa1 /src | |
| parent | b9816896abacac108d54ccdc1286b2542465287b (diff) | |
| download | manager-21b385a546b2bf5c3102de73aa2ce0b2d35c426f.tar.gz manager-21b385a546b2bf5c3102de73aa2ce0b2d35c426f.zip | |
Print an error and exit, if the clonk executable is not present
Diffstat (limited to 'src')
| -rw-r--r-- | src/crsm.cpp | 27 | ||||
| -rw-r--r-- | src/crsm.hpp | 4 |
2 files changed, 24 insertions, 7 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp index 1390692..f1c61fe 100644 --- a/src/crsm.cpp +++ b/src/crsm.cpp @@ -27,7 +27,11 @@ CRSM::CRSM(QObject *parent) : args << "/fullscreen" << "/config:config" << "/lobby:60" << "/nosignup"; finish = false; + ok = true; readConfig(); + if(!ok) return; + + ok = false; connect(&managementServer, SIGNAL(newConnection()), this, SLOT(newManagementConnection())); managementServer.listen(QHostAddress::LocalHostIPv6, Config.CRSM.ManagementPort); @@ -372,7 +376,7 @@ void CRSM::scenarioFinished() if(finish) { writeConfig(); - processManager->exit(); + if(processManager != nullptr) processManager->exit(); if(connection != 0) { connection->quit(Config.IRC.QuitMessage); @@ -727,6 +731,12 @@ void CRSM::readConfig() { Config.CRSM.ManagementPort = 9372; } + if(!QFile(Config.Clonk.Server.Executable).exists()) + { + out("ERROR: The Clonk.Server.Exectuable doesn't exist: \"" + Config.Clonk.Server.Executable + "\"\n"); + ok = false; + exit(); + } return; } @@ -1534,6 +1544,15 @@ ClientInfo &CRSM::getClientInfo(const QString &pcName, int cuid, const QString & return clients[pcName]; } +void CRSM::exit() +{ + if(processManager != nullptr) processManager->closeProgFifos(); + Config.Auto.ProcessManager.ReattachId.clear(); + finish = true; + if(!Session.Hosting) + scenarioFinished(); +} + CMD_FUNCTION_IMPL(help) bool longHelp = (args == "long"); if(args.isEmpty() || longHelp) @@ -1983,11 +2002,7 @@ CMD_FUNCTION_IMPL(leave) } CMD_FUNCTION_IMPL(exit) - processManager->closeProgFifos(); - Config.Auto.ProcessManager.ReattachId.clear(); - finish = true; - if(!Session.Hosting) - scenarioFinished(); + exit(); } CMD_FUNCTION_IMPL(exitDetach) diff --git a/src/crsm.hpp b/src/crsm.hpp index f1cee49..fc4ee1e 100644 --- a/src/crsm.hpp +++ b/src/crsm.hpp @@ -149,7 +149,7 @@ private: QStringList ircModIOList; QString writtenToServer; QMap<QString, CmdFunctionRef> cmds; - ProcessManager* processManager; + ProcessManager* processManager = nullptr; QTcpServer managementServer; QMap<QTcpSocket*, ManagementConnection> managementConnections; @@ -200,6 +200,8 @@ private: ClientInfo& getClientInfo(const QString& pcName, int cuid, const QString& user); + void exit(); + CMD_FUNCTION(help); CMD_FUNCTION(passToClonk); CMD_FUNCTION(admin); |
