Some more setup for the config and data folders.

This commit is contained in:
Patrick 2025-03-02 20:10:10 +01:00
parent 75773778e9
commit cd40148961

View File

@ -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;
}
}