diff --git a/include/Cubed/tools/system_version.hpp b/include/Cubed/tools/system_version.hpp new file mode 100644 index 0000000..849e874 --- /dev/null +++ b/include/Cubed/tools/system_version.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include +#include + +#include + +#ifdef _WIN32 + +#elif defined(__linux__) +inline bool get_os_version(std::string& str) { + std::ifstream file("/etc/os-release"); + if (!file.is_open()) { + Logger::error("Can't Open /etc/os-release"); + return false; + } + std::string line; + while (std::getline(file, line)) { + size_t eq_pos = line.find("="); + if (eq_pos == std::string::npos) { + continue; + } + std::string key = line.substr(0, eq_pos); + if (key != "PRETTY_NAME") { + continue; + } + str = line.substr(eq_pos + 1); + + if (str.size() >= 2 && str.front() == '"' && str.back() == '"') { + str = str.substr(1, str.size() - 2); + return true; + } + } + return false; +} +#endif + + diff --git a/src/debug_collector.cpp b/src/debug_collector.cpp index cc0d104..bae3835 100644 --- a/src/debug_collector.cpp +++ b/src/debug_collector.cpp @@ -1,5 +1,6 @@ #include +#include #include DebugCollector::DebugCollector() { @@ -16,6 +17,7 @@ void DebugCollector::init_text() { Text fps_text("fps"); Text player_pos_text("player_pos"); Text rendered_chunk_text("rendered_chunk"); + version_text .position(0.0f, 100.0f) .scale(0.8f) @@ -32,10 +34,26 @@ void DebugCollector::init_text() { .text("Rendered Chunk: 0") .scale(0.8f) .position(0.0, 200.0f); + std::string os; + + Text os_text("os"); + os_text + .scale(0.8f) + .position(0.0f, 250.0f); + if (get_os_version(os)) { + os_text + .text("OS: " + os); + Logger::info("System: {}", os); + } else { + os_text + .text("OS: Unknown"); + + } m_texts.insert({version_text.uuid(), std::move(version_text)}); m_texts.insert({fps_text.uuid(), std::move(fps_text)}); m_texts.insert({player_pos_text.uuid(), std::move(player_pos_text)}); m_texts.insert({rendered_chunk_text.uuid(), std::move(rendered_chunk_text)}); + m_texts.insert({os_text.uuid(), std::move(os_text)}); } std::unordered_map& DebugCollector::all_texts() {