Browse Source

Manager: Put machine information fetching in separate functions

master
Riyyi 3 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" #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
src/machine.h

@ -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;

Loading…
Cancel
Save