std::string getOSString() { std::string distro, arch; #ifdef DEBUG distro = "Unknown (debug build)"; arch = "XXX"; #else std::string lsbInfo = getCmdStdout("lsb_release -a", 1); arch = getCmdStdout("uname -m", 1); if (lsbInfo.size() > 0) distro = getDescFromLSB(lsbInfo); char outBuff[255] = {0}; if (distro.size() == 0 && (readFile("/etc/fedora-release", outBuff, 254) || readFile("/etc/redhat-release", outBuff, 254) || readFile("/etc/gentoo-release", outBuff, 254))) distro = outBuff; if (distro.size() == 0) distro = "Unknown (indeterminate)"; #endif return distro.insert(0, "Linux ").append(" ").append(arch); }
std::wstring getDesktopPath(std::wstring extra) { // Convert std::string to std::wstring using std::copy std::string temp(getCmdStdout("xdg-user-dir DESKTOP", 1)); std::wstring desktop(temp.length(),L' '); std::copy(temp.begin(), temp.end(), desktop.begin()); //std::wstring desktop((wchar_t*) getCmdStdout("xdg-user-dir DESKTOP", 1).c_str()); if(!desktop.empty()) { desktop += L"/"; desktop += extra; } // Do some error checking if desktop is empty return desktop; }
bool is64OS() { #ifndef DEBUG std::string out(getCmdStdout("uname -m", 1)); if(out == "x86_64") return true; else return false; #else #ifdef NIX64 return true; #else return false; #endif #endif }