mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-15 11:05:58 +01:00
debug: clean up fetching of the contents of /proc/device-tree (#8413)
This commit is contained in:
parent
c10739e6e3
commit
1fa0cd7a75
1 changed files with 20 additions and 1 deletions
|
@ -1,7 +1,9 @@
|
||||||
#include "HyprCtl.hpp"
|
#include "HyprCtl.hpp"
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
#include <format>
|
#include <format>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
#include <iterator>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -945,7 +947,24 @@ std::string systemInfoRequest(eHyprCtlOutputFormat format, std::string request)
|
||||||
#if defined(__DragonFly__) || defined(__FreeBSD__)
|
#if defined(__DragonFly__) || defined(__FreeBSD__)
|
||||||
const std::string GPUINFO = execAndGet("pciconf -lv | fgrep -A4 vga");
|
const std::string GPUINFO = execAndGet("pciconf -lv | fgrep -A4 vga");
|
||||||
#elif defined(__arm__) || defined(__aarch64__)
|
#elif defined(__arm__) || defined(__aarch64__)
|
||||||
const std::string GPUINFO = execAndGet("cat /proc/device-tree/soc*/gpu*/compatible");
|
std::string GPUINFO;
|
||||||
|
const std::filesystem::path dev_tree = "/proc/device-tree";
|
||||||
|
try {
|
||||||
|
if (std::filesystem::exists(dev_tree) && std::filesystem::is_directory(dev_tree)) {
|
||||||
|
std::for_each(std::filesystem::directory_iterator(dev_tree), std::filesystem::directory_iterator{}, [&](const std::filesystem::directory_entry& entry) {
|
||||||
|
if (std::filesystem::is_directory(entry) && entry.path().filename().string().starts_with("soc")) {
|
||||||
|
std::for_each(std::filesystem::directory_iterator(entry.path()), std::filesystem::directory_iterator{}, [&](const std::filesystem::directory_entry& sub_entry) {
|
||||||
|
if (std::filesystem::is_directory(sub_entry) && sub_entry.path().filename().string().starts_with("gpu")) {
|
||||||
|
std::filesystem::path file_path = sub_entry.path() / "compatible";
|
||||||
|
std::ifstream file(file_path);
|
||||||
|
if (file)
|
||||||
|
GPUINFO.append(std::istreambuf_iterator<char>(file), std::istreambuf_iterator<char>());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (...) { GPUINFO = "error"; }
|
||||||
#else
|
#else
|
||||||
const std::string GPUINFO = execAndGet("lspci -vnn | grep VGA");
|
const std::string GPUINFO = execAndGet("lspci -vnn | grep VGA");
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue