From bf862f2d5a3edffea92cc153a749bab3286694f6 Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 29 Dec 2024 10:44:22 -0500 Subject: [PATCH] Refactor file loading functions: simplify LoadFile, add LoadConfigFile, and adjust platform handling --- src/app/core/utils/file_util.cc | 47 ++++++++++++++++++++++++--------- src/app/core/utils/file_util.h | 3 ++- 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/src/app/core/utils/file_util.cc b/src/app/core/utils/file_util.cc index a4dd0132..6f2be10e 100644 --- a/src/app/core/utils/file_util.cc +++ b/src/app/core/utils/file_util.cc @@ -29,8 +29,31 @@ std::string GetFileName(const std::string &filename) { return filename.substr(slash + 1); } -std::string LoadFile(const std::string &filename, Platform platform) { +std::string LoadFile(const std::string &filename) { std::string contents; + std::ifstream file(filename); + if (file.is_open()) { + std::stringstream buffer; + buffer << file.rdbuf(); + contents = buffer.str(); + file.close(); + } else { + // Throw an exception + throw std::runtime_error("Could not open file: " + filename); + } + return contents; +} + +std::string LoadConfigFile(const std::string &filename) { + std::string contents; + Platform platform; +#if defined(_WIN32) + platform = Platform::kWindows; +#elif defined(__APPLE__) + platform = Platform::kMacOS; +#else + platform = Platform::kLinux; +#endif std::string filepath = GetConfigDirectory(platform) + "/" + filename; std::ifstream file(filepath); if (file.is_open()) { @@ -55,18 +78,18 @@ void SaveFile(const std::string &filename, const std::string &contents, std::string GetConfigDirectory(Platform platform) { std::string config_directory = ".yaze"; switch (platform) { - case Platform::kWindows: - config_directory = "~/AppData/Roaming/yaze"; - break; - case Platform::kMacOS: - case Platform::kLinux: - config_directory = "~/.config/yaze"; - break; - default: - break; + case Platform::kWindows: + config_directory = "~/AppData/Roaming/yaze"; + break; + case Platform::kMacOS: + case Platform::kLinux: + config_directory = "~/.config/yaze"; + break; + default: + break; } return config_directory; } -} // namespace core -} // namespace yaze +} // namespace core +} // namespace yaze diff --git a/src/app/core/utils/file_util.h b/src/app/core/utils/file_util.h index f7977e6a..be446313 100644 --- a/src/app/core/utils/file_util.h +++ b/src/app/core/utils/file_util.h @@ -10,7 +10,8 @@ enum class Platform { kUnknown, kMacOS, kiOS, kWindows, kLinux }; std::string GetFileExtension(const std::string &filename); std::string GetFileName(const std::string &filename); -std::string LoadFile(const std::string &filename, Platform platform); +std::string LoadFile(const std::string &filename); +std::string LoadConfigFile(const std::string &filename); std::string GetConfigDirectory(Platform platform); void SaveFile(const std::string &filename, const std::string &data,