Skip to content

Commit

Permalink
misc: move user to query + some changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Toni500github committed Jun 27, 2024
1 parent 24f7fda commit 0369c90
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 79 deletions.
146 changes: 68 additions & 78 deletions src/parse.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -334,41 +334,42 @@ std::string parse(const std::string& input, systemInfo_t& systemInfo, Config& co
void addModuleValues(systemInfo_t& sysInfo, const std::string_view moduleName) {
// yikes, here we go.

if (moduleName == "os") {
if (moduleName == "os" || moduleName == "system") {
Query::System query_system;

std::chrono::seconds uptime_secs(query_system.uptime());
auto uptime_mins = std::chrono::duration_cast<std::chrono::minutes>(uptime_secs);
auto uptime_hours = std::chrono::duration_cast<std::chrono::hours>(uptime_secs);

sysInfo.insert(
{"os", {
{"name", variant(query_system.os_pretty_name())},
{"uptime_secs", variant((size_t)uptime_secs.count()%60)},
{"uptime_mins", variant((size_t)uptime_mins.count()%60)},
{"uptime_hours", variant((size_t)uptime_hours.count())},
{"kernel_name", variant(query_system.kernel_name())},
{"kernel_version", variant(query_system.kernel_version())},
{"hostname", variant(query_system.hostname())},
{"arch", variant(query_system.arch())},
}}
);

return;
}
if (moduleName == "system") {
Query::System query_system;

sysInfo.insert(
{"system", {
{"host_name", variant(query_system.host_modelname())},
{"host_vendor", variant(query_system.host_vendor())},
{"host_version", variant(query_system.host_version())}
}}
);
// stupid way to not construct query_system twice, more faster
if (moduleName == "system") {
sysInfo.insert(
{"system", {
{"host_name", variant(query_system.host_modelname())},
{"host_vendor", variant(query_system.host_vendor())},
{"host_version", variant(query_system.host_version())}
}}
);
}

else {
sysInfo.insert(
{"os", {
{"name", variant(query_system.os_pretty_name())},
{"uptime_secs", variant((size_t)uptime_secs.count()%60)},
{"uptime_mins", variant((size_t)uptime_mins.count()%60)},
{"uptime_hours", variant((size_t)uptime_hours.count())},
{"kernel_name", variant(query_system.kernel_name())},
{"kernel_version", variant(query_system.kernel_version())},
{"hostname", variant(query_system.hostname())},
{"arch", variant(query_system.arch())},
}}
);
}

return;
}

if (moduleName == "user") {
Query::User query_user;

Expand Down Expand Up @@ -431,8 +432,9 @@ void addModuleValues(systemInfo_t& sysInfo, const std::string_view moduleName) {
void addValueFromModule(systemInfo_t& sysInfo, const std::string& moduleName, const std::string& moduleValueName) {
// yikes, here we go.
auto module_hash = fnv1a32::hash(moduleValueName);

if (moduleName == "os") {

// stupid way to not construct query_system twice, more faster
if (moduleName == "os" || moduleName == "system") {
Query::System query_system;

std::chrono::seconds uptime_secs(query_system.uptime());
Expand All @@ -444,59 +446,47 @@ void addValueFromModule(systemInfo_t& sysInfo, const std::string& moduleName, co
{moduleName, { }}
);

if (sysInfo[moduleName].find(moduleValueName) == sysInfo[moduleName].end()) {

// this string switch case library name is so damn shitty
// thanks god clangd has an auto completer
switch (module_hash) {
case "name"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.os_pretty_name())}); break;

case "uptime_secs"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant((size_t)uptime_secs.count()%60)}); break;

case "uptime_mins"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant((size_t)uptime_mins.count()%60)}); break;

case "uptime_hours"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant((size_t)uptime_hours.count())}); break;

case "kernel_name"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.kernel_name())}); break;

case "kernel_version"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.kernel_version())}); break;

case "hostname"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.hostname())}); break;

case "arch"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.arch())}); break;
if (moduleName == "os") {
if (sysInfo[moduleName].find(moduleValueName) == sysInfo[moduleName].end()) {
switch (module_hash) {
case "name"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.os_pretty_name())}); break;

case "uptime_secs"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant((size_t)uptime_secs.count()%60)}); break;

case "uptime_mins"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant((size_t)uptime_mins.count()%60)}); break;

case "uptime_hours"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant((size_t)uptime_hours.count())}); break;

case "kernel_name"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.kernel_name())}); break;

case "kernel_version"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.kernel_version())}); break;

case "hostname"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.hostname())}); break;

case "arch"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.arch())}); break;
}
}
}

return;
}

if (moduleName == "system") {
Query::System query_system;

if (sysInfo.find(moduleName) == sysInfo.end())
sysInfo.insert(
{moduleName, { }}
);
} else {
if (sysInfo[moduleName].find(moduleValueName) == sysInfo[moduleName].end()) {
switch (module_hash) {
case "host_name"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.host_modelname())}); break;

if (sysInfo[moduleName].find(moduleValueName) == sysInfo[moduleName].end())
{
switch (module_hash) {
case "host_name"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.host_modelname())}); break;

case "host_vendor"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.host_vendor())}); break;
case "host_vendor"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.host_vendor())}); break;

case "host_version"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.host_version())}); break;
case "host_version"_fnv1a32:
sysInfo[moduleName].insert({moduleValueName, variant(query_system.host_version())}); break;
}
}
}

Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/util.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ std::string shell_exec(std::string_view cmd) {

// why there is a '\n' at the end??
if (!result.empty() && result[result.length() - 1] == '\n')
result.erase(result.length() - 1);
result.pop_back();
return result;
}

Expand Down

0 comments on commit 0369c90

Please sign in to comment.