MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / read_os_release

Method read_os_release

libraries/systeminfo/src/distroutils.cpp:43–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41#include <functional>
42
43Sys::DistributionInfo Sys::read_os_release()
44{
45 Sys::DistributionInfo out;
46 QStringList files = { "/etc/os-release", "/usr/lib/os-release" };
47 QString name;
48 QString version;
49 for (auto &file: files)
50 {
51 if(!QFile::exists(file))
52 {
53 continue;
54 }
55 QSettings settings(file, QSettings::IniFormat);
56 if(settings.contains("ID"))
57 {
58 name = settings.value("ID").toString().toLower();
59 }
60 else if (settings.contains("NAME"))
61 {
62 name = settings.value("NAME").toString().toLower();
63 }
64 else
65 {
66 continue;
67 }
68
69 if(settings.contains("VERSION_ID"))
70 {
71 version = settings.value("VERSION_ID").toString().toLower();
72 }
73 else if(settings.contains("VERSION"))
74 {
75 version = settings.value("VERSION").toString().toLower();
76 }
77 break;
78 }
79 if(name.isEmpty())
80 {
81 return out;
82 }
83 out.distributionName = name;
84 out.distributionVersion = version;
85 return out;
86}
87
88bool Sys::main_lsb_info(Sys::LsbInfo & out)
89{

Callers

nothing calls this directly

Calls 3

isEmptyMethod · 0.80
containsMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected