Manager: Put machine information fetching in separate functions

This commit is contained in:
Riyyi
2022-02-02 18:10:35 +01:00
parent 5f023e579a
commit 4bf7b3d38f
2 changed files with 23 additions and 4 deletions
+19 -4
View File
@@ -12,6 +12,19 @@
#include "util/file.h" #include "util/file.h"
Machine::Machine(s) Machine::Machine(s)
{
fetchDistro();
fetchHostname();
fetchUsername();
}
Machine::~Machine()
{
}
// -----------------------------------------
void Machine::fetchDistro()
{ {
Util::File osRelease("/etc/os-release"); Util::File osRelease("/etc/os-release");
std::istringstream stream(osRelease.data()); std::istringstream stream(osRelease.data());
@@ -23,13 +36,19 @@ Machine::Machine(s)
m_distroIdLike = line.substr(8); m_distroIdLike = line.substr(8);
} }
} }
}
void Machine::fetchHostname()
{
char hostname[64] { 0 }; char hostname[64] { 0 };
if (gethostname(hostname, 64) < 0) { if (gethostname(hostname, 64) < 0) {
perror("\033[31;1mError:\033[0m gethostname"); perror("\033[31;1mError:\033[0m gethostname");
} }
m_hostname = hostname; m_hostname = hostname;
}
void Machine::fetchUsername()
{
// Get the username logged in on the controlling terminal of the process // Get the username logged in on the controlling terminal of the process
char username[32] { 0 }; char username[32] { 0 };
if (getlogin_r(username, 32) != 0) { if (getlogin_r(username, 32) != 0) {
@@ -42,7 +61,3 @@ Machine::Machine(s)
perror("\033[31;1mError:\033[0m getpwnam"); perror("\033[31;1mError:\033[0m getpwnam");
} }
} }
Machine::~Machine()
{
}
+4
View File
@@ -27,6 +27,10 @@ public:
uint32_t gid() { return m_passwd->pw_gid; } uint32_t gid() { return m_passwd->pw_gid; }
private: private:
void fetchDistro();
void fetchHostname();
void fetchUsername();
std::string m_distroId; std::string m_distroId;
std::string m_distroIdLike; std::string m_distroIdLike;
std::string m_hostname; std::string m_hostname;