diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-06-25 20:49:06 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-06-25 20:49:06 +0200 |
| commit | 8de8f6667e6a409635c3473824a2e6e0bf70ecf7 (patch) | |
| tree | 5b35e5f779be010af3d385197701029912779dc2 /src/helpers/MiscFunctions.cpp | |
| parent | 648b2c892cf0bf3c317643d317c358274d85c2df (diff) | |
add system info logging
Diffstat (limited to 'src/helpers/MiscFunctions.cpp')
| -rw-r--r-- | src/helpers/MiscFunctions.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp index 55b0ec83..ce9dd788 100644 --- a/src/helpers/MiscFunctions.cpp +++ b/src/helpers/MiscFunctions.cpp @@ -2,6 +2,7 @@ #include "../defines.hpp" #include <algorithm> #include "../Compositor.hpp" +#include <sys/utsname.h> void addWLSignal(wl_signal* pSignal, wl_listener* pListener, void* pOwner, std::string ownerString) { ASSERT(pSignal); @@ -232,4 +233,35 @@ float vecToRectDistanceSquared(const Vector2D& vec, const Vector2D& p1, const Ve const float DX = std::max((double)0, std::max(p1.x - vec.x, vec.x - p2.x)); const float DY = std::max((double)0, std::max(p1.y - vec.y, vec.y - p2.y)); return DX * DX + DY * DY; +} + +// Execute a shell command and get the output +std::string execAndGet(const char* cmd) { + std::array<char, 128> buffer; + std::string result; + const std::unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose); + if (!pipe) { + Debug::log(ERR, "execAndGet: failed in pipe"); + return ""; + } + while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) { + result += buffer.data(); + } + return result; +} + +void logSystemInfo() { + struct utsname unameInfo; + + uname(&unameInfo); + + Debug::log(LOG, "System name: %s", unameInfo.sysname); + Debug::log(LOG, "Node name: %s", unameInfo.nodename); + Debug::log(LOG, "Release: %s", unameInfo.release); + Debug::log(LOG, "Version: %s", unameInfo.version); + + // log etc + Debug::log(LOG, "os-release:"); + + Debug::log(NONE, "%s", execAndGet("cat /etc/os-release").c_str()); }
\ No newline at end of file |
