LunaHook-mirror/LunaHost/GUI/confighelper.cpp
恍兮惚兮 3e66a81e40 font
2024-07-21 20:57:04 +08:00

47 lines
989 B
C++

#include "confighelper.h"
#include "stringutils.h"
std::string readfile(const wchar_t *fname)
{
FILE *f;
_wfopen_s(&f, fname, L"rb");
if (f == 0)
return {};
fseek(f, 0, SEEK_END);
auto len = ftell(f);
fseek(f, 0, SEEK_SET);
std::string buff;
buff.resize(len);
fread(buff.data(), 1, len, f);
fclose(f);
return buff;
}
void writefile(const wchar_t *fname, const std::string &s)
{
FILE *f;
_wfopen_s(&f, fname, L"w");
fprintf(f, "%s", s.c_str());
fclose(f);
}
confighelper::confighelper()
{
configpath = std::filesystem::current_path() / (x64 ? "config64.json" : "config32.json");
try
{
configs = nlohmann::json::parse(readfile(configpath.c_str()));
}
catch (std::exception &)
{
configs = {};
}
if (configs.find("plugins") == configs.end())
{
configs["plugins"] = {};
}
}
confighelper::~confighelper()
{
writefile(configpath.c_str(), configs.dump(4));
}