Browse Source

Manager: Put machine information fetching in separate functions

master
Riyyi 2 years ago
parent
commit
4bf7b3d38f
  1. 23
      src/machine.cpp
  2. 4
      src/machine.h

23
src/machine.cpp

@ -12,6 +12,19 @@
#include "util/file.h"
Machine::Machine(s)
{
fetchDistro();
fetchHostname();
fetchUsername();
}
Machine::~Machine()
{
}
// -----------------------------------------
void Machine::fetchDistro()
{
Util::File osRelease("/etc/os-release");
std::istringstream stream(osRelease.data());
@ -23,13 +36,19 @@ Machine::Machine(s)
m_distroIdLike = line.substr(8);
}
}
}
void Machine::fetchHostname()
{
char hostname[64] { 0 };
if (gethostname(hostname, 64) < 0) {
perror("\033[31;1mError:\033[0m gethostname");
}
m_hostname = hostname;
}
void Machine::fetchUsername()
{
// Get the username logged in on the controlling terminal of the process
char username[32] { 0 };
if (getlogin_r(username, 32) != 0) {
@ -42,7 +61,3 @@ Machine::Machine(s)
perror("\033[31;1mError:\033[0m getpwnam");
}
}
Machine::~Machine()
{
}

4
src/machine.h

@ -27,6 +27,10 @@ public:
uint32_t gid() { return m_passwd->pw_gid; }
private:
void fetchDistro();
void fetchHostname();
void fetchUsername();
std::string m_distroId;
std::string m_distroIdLike;
std::string m_hostname;

Loading…
Cancel
Save