use binary dir paths, create ones that dont exist, do not run if critical ones do not exist.

This commit is contained in:
David Markowitz 2024-12-24 12:36:54 -08:00
parent 2560bb00da
commit b2af3fa9d4
3 changed files with 21 additions and 4 deletions

View File

@ -1,5 +1,5 @@
PROJECT_VERSION_MAJOR=2
PROJECT_VERSION_MINOR=3
PROJECT_VERSION_MAJOR=3
PROJECT_VERSION_MINOR=0
PROJECT_VERSION_PATCH=0
# Debugging

View File

@ -5,6 +5,7 @@
#include "dConfig.h"
#include "Logger.h"
#include "dPlatforms.h"
#include "BinaryPathFinder.h"
// Static Variables
@ -17,7 +18,14 @@ namespace {
void SQLiteDatabase::Connect() {
LOG("Using SQLite database");
con = new CppSQLite3DB();
con->open(Game::config->GetValue("sqlite_database_path").c_str());
const auto path = BinaryPathFinder::GetBinaryDir() / Game::config->GetValue("sqlite_database_path");
if (!std::filesystem::exists(path)) {
LOG("Creating sqlite path %s", path.string().c_str());
std::filesystem::create_directories(path.parent_path());
}
con->open(path.string().c_str());
isConnected = true;
// Make sure wal is enabled for the database.

View File

@ -84,6 +84,15 @@ int main(int argc, char** argv) {
Server::SetupLogger("MasterServer");
if (!Game::logger) return EXIT_FAILURE;
auto folders = { "navmeshes", "migrations", "vanity" };
for (const auto folder : folders) {
if (!std::filesystem::exists(BinaryPathFinder::GetBinaryDir() / folder)) {
LOG("The %s folder was not copied to the binary directory. Please copy the %s folder from your download to the binary directory or re-run cmake.", folder, folder);
return EXIT_FAILURE;
}
}
if (!dConfig::Exists("authconfig.ini")) LOG("Could not find authconfig.ini, using default settings");
if (!dConfig::Exists("chatconfig.ini")) LOG("Could not find chatconfig.ini, using default settings");
if (!dConfig::Exists("masterconfig.ini")) LOG("Could not find masterconfig.ini, using default settings");
@ -177,7 +186,7 @@ int main(int argc, char** argv) {
}
// Run migrations should any need to be run.
MigrationRunner::RunSQLiteMigrations();
MigrationRunner::RunSQLiteMigrations();
//If the first command line argument is -a or --account then make the user
//input a username and password, with the password being hidden.