Manager: Put machine information fetching in separate functions
This commit is contained in:
+19
-4
@@ -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()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user