Make server 12-factor compatible. (#3546)

* Docker

* Herokuize

* Use mysql method with database_url

* cleanup
This commit is contained in:
Rob Blanckaert 2019-02-03 12:58:54 -08:00 committed by ctrlaltca
parent 5a4f020196
commit 544c66edde
2 changed files with 33 additions and 5 deletions

View file

@ -35,10 +35,12 @@
#include <QDateTime>
#include <QDebug>
#include <QFile>
#include <QProcessEnvironment>
#include <QSqlQuery>
#include <QString>
#include <QStringList>
#include <QTimer>
#include <QUrl>
#include <iostream>
Servatrice_GameServer::Servatrice_GameServer(Servatrice *_server,
@ -790,6 +792,9 @@ bool Servatrice::getRegOnlyServerEnabled() const
QString Servatrice::getAuthenticationMethodString() const
{
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
return QString("sql");
}
return settingsCache->value("authentication/method").toString();
}
@ -830,36 +835,58 @@ QString Servatrice::getRequiredFeatures() const
QString Servatrice::getDBTypeString() const
{
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
return QString("mysql");
}
return settingsCache->value("database/type").toString();
}
QString Servatrice::getDBPrefixString() const
{
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
return QString("cockatrice");
}
return settingsCache->value("database/prefix").toString();
}
QString Servatrice::getDBHostNameString() const
{
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
return QUrl(QProcessEnvironment::systemEnvironment().value("DATABASE_URL")).host();
}
return settingsCache->value("database/hostname").toString();
}
QString Servatrice::getDBDatabaseNameString() const
{
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
QString path = QUrl(QProcessEnvironment::systemEnvironment().value("DATABASE_URL")).path();
return path.right(path.length() - 1);
}
return settingsCache->value("database/database").toString();
}
QString Servatrice::getDBUserNameString() const
{
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
return QUrl(QProcessEnvironment::systemEnvironment().value("DATABASE_URL")).userName();
}
return settingsCache->value("database/user").toString();
}
QString Servatrice::getDBPasswordString() const
{
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
return QUrl(QProcessEnvironment::systemEnvironment().value("DATABASE_URL")).password();
}
return settingsCache->value("database/password").toString();
}
QString Servatrice::getRoomsMethodString() const
{
if (QProcessEnvironment::systemEnvironment().contains("DATABASE_URL")) {
return QString("sql");
}
return settingsCache->value("rooms/method").toString();
}
@ -953,6 +980,9 @@ QHostAddress Servatrice::getServerWebSocketHost() const
int Servatrice::getServerWebSocketPort() const
{
if (QProcessEnvironment::systemEnvironment().contains("PORT")) {
return QProcessEnvironment::systemEnvironment().value("PORT").toInt();
}
return settingsCache->value("server/websocket_port", 4748).toInt();
}