From a0a585353c12f1890f0bfa8ed37be1b0f065de0b Mon Sep 17 00:00:00 2001 From: q5sys Date: Mon, 5 Jun 2017 10:41:40 -0400 Subject: [PATCH] a few additions to sysadm-general --- src/server/library/sysadm-general.cpp | 50 +++++++++++++++++++++++++++ src/server/library/sysadm-general.h | 4 +++ 2 files changed, 54 insertions(+) diff --git a/src/server/library/sysadm-general.cpp b/src/server/library/sysadm-general.cpp index c60bcf2..bff209c 100644 --- a/src/server/library/sysadm-general.cpp +++ b/src/server/library/sysadm-general.cpp @@ -10,6 +10,10 @@ #include "sysadm-global.h" using namespace sysadm; + +#define PREFIX QString("/usr/local") +QString TRUEOS_ETCCONF(PREFIX + "/etc/trueos.conf"); // The default trueos.conf file + //================= // RunCommand() variations //================= @@ -241,6 +245,30 @@ bool General::setConfFileValue(QString fileName, QString oldKey, QString newKey, return true; } +QString General::getValFromTrueOSConf(QString key) { + return getValFromTOConf(TRUEOS_ETCCONF, key); +} + +QString General::getValFromTOConf(QString conf, QString key) { + + // Load from conf the requested key + QFile confFile(conf); + if ( confFile.open( QIODevice::ReadOnly ) ) { + QTextStream stream( &confFile ); + stream.setCodec("UTF-8"); + QString line; + while ( !stream.atEnd() ) { + line = stream.readLine().simplified(); + if ( line.indexOf(key + ": ") == 0 ) { + confFile.close(); + return line.replace(key + ": ", ""); + } + + } + confFile.close(); + } +} + //=========================== // SYSCTL ACCESS (might require root) //=========================== @@ -261,3 +289,25 @@ long long General::sysctlAsInt(QString var){ if(0!=sysctlbyname(var.toLocal8Bit(), &result, &len, NULL, 0) ){ return 0; } return result; } + +//=========================== +// Misc +//=========================== + +QString General::bytesToHumanReadable(long long bytes) +{ + float num = bytes; + QStringList list; + list << "KB" << "MB" << "GB" << "TB"; + + QStringListIterator i(list); + QString unit("bytes"); + + while(num >= 1024.0 && i.hasNext()) + { + unit = i.next(); + num /= 1024.0; + } + return QString().setNum(num,'f',2)+" "+unit; +} + diff --git a/src/server/library/sysadm-general.h b/src/server/library/sysadm-general.h index 507a3ee..2a648af 100644 --- a/src/server/library/sysadm-general.h +++ b/src/server/library/sysadm-general.h @@ -55,6 +55,10 @@ public: //Retrieve a number-based sysctl static long long sysctlAsInt(QString var); +static QString bytesToHumanReadable(long long bytes); +static QString getValFromTOConf(QString conf, QString key); +static QString getValFromTrueOSConf(QString key); + }; } //end of pcbsd namespace