From cd401489618a2850a41dbb6ca8d2af579eab37a3 Mon Sep 17 00:00:00 2001 From: Patrick Wuttke Date: Sun, 2 Mar 2025 20:10:10 +0100 Subject: [PATCH] Some more setup for the config and data folders. --- private/raid/application.cpp | 69 +++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/private/raid/application.cpp b/private/raid/application.cpp index d9ba6e5..964c13b 100644 --- a/private/raid/application.cpp +++ b/private/raid/application.cpp @@ -32,15 +32,26 @@ int Application::run(int argc, char** argv) cleanup(); }; - using namespace mijin::vfs_pipe; - mFS.addAdapter(os() - | relative_to(mijin::getKnownFolder(mijin::KnownFolder::USER_CONFIG_ROOT) / getFolderName()) - | map_to("/config") - ); - mFS.addAdapter(os() - | relative_to(mijin::getKnownFolder(mijin::KnownFolder::USER_DATA_ROOT) / getFolderName()) - | map_to("/data") - ); + auto addConfigDir = [&](const fs::path path) + { + using namespace mijin::vfs_pipe; + mFS.addAdapter(os() + | relative_to(path) + | map_to("/config") + ); + }; + + auto addDataDir = [&](const fs::path path) + { + using namespace mijin::vfs_pipe; + mFS.addAdapter(os() + | relative_to(path) + | map_to("/data") + ); + }; + + addConfigDir(mijin::getKnownFolder(mijin::KnownFolder::USER_CONFIG_ROOT) / getFolderName()); + addDataDir(mijin::getKnownFolder(mijin::KnownFolder::USER_DATA_ROOT) / getFolderName()); auto createUserDir = [&](const fs::path& virtualPath) { @@ -62,6 +73,40 @@ int Application::run(int argc, char** argv) createUserDir("/config"); createUserDir("/data"); + // in development builds, also add the development folders +#if !defined(RAID_RELEASE) + addConfigDir(fs::current_path() / "data/config"); + addDataDir(fs::current_path() / "data/data"); +#endif + + // now also add the system folders + for (const fs::path& path : mijin::getAllConfigFolders(mijin::IncludeUser::NO)) + { + addConfigDir(path / getFolderName()); + } + + for (const fs::path& path : mijin::getAllDataFolders(mijin::IncludeUser::NO)) + { + addDataDir(path / getFolderName()); + } + +#if !defined(RAID_RELEASE) + for (const mijin::PathReference& reference : mFS.getAllPaths("/config")) + { + reference.getNativePath().then([&](const fs::path& path) + { + msgInfo("Config folder: {}", path.generic_string()); + }); + } + for (const mijin::PathReference& reference : mFS.getAllPaths("/data")) + { + reference.getNativePath().then([&](const fs::path& path) + { + msgInfo("Data folder: {}", path.generic_string()); + }); + } +#endif + if (!initSDL()) { return ERR_INIT_FAILED; @@ -121,13 +166,13 @@ void Application::handleMessage(const Message& message) switch (message.severity) { case MessageSeverity::INFO: - fmt::print("INFO: {}", message.text); + fmt::println("INFO: {}", message.text); break; case MessageSeverity::WARNING: - fmt::print("WARNING: {}", message.text); + fmt::println("WARNING: {}", message.text); break; case MessageSeverity::ERROR: - fmt::print(stderr, "ERROR: {}", message.text); + fmt::println(stderr, "ERROR: {}", message.text); break; } }