save for christmas
This commit is contained in:
@@ -13,9 +13,65 @@
|
||||
#include <QDir>
|
||||
#include <QDirIterator>
|
||||
#include <QRegularExpression>
|
||||
#include <QProcess>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonValue>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonArray>
|
||||
|
||||
#include <fstream>
|
||||
|
||||
QVector<QPair<QString, QString>> Utils::installedPackages() {
|
||||
QVector<QPair<QString, QString>> vec;
|
||||
if (QFile::exists("/usr/bin/ptuPackageVersions")) {
|
||||
QProcess p;
|
||||
QStringList params;
|
||||
params << "-c" << R"(/usr/bin/ptuPackageVersions -i -o json)";
|
||||
|
||||
p.start("bash", params);
|
||||
p.waitForFinished();
|
||||
|
||||
QString r = p.readAllStandardOutput();
|
||||
|
||||
// ptuPackageVersions returns a json-array
|
||||
QJsonArray const &ja = QJsonDocument::fromJson(r.remove(QRegExp("\\n")).toUtf8()).array();
|
||||
if (!ja.empty()) {
|
||||
qCritical() << __LINE__;
|
||||
// transform the array into an object, containing the objects
|
||||
// of the array (christian needs it this way)
|
||||
foreach (QJsonValue const &value, ja) {
|
||||
if (value.isObject()) {
|
||||
QJsonObject obj = value.toObject();
|
||||
QStringList keys = obj.keys();
|
||||
if (!keys.isEmpty()) {
|
||||
QString const &k = keys.first();
|
||||
QJsonValue const &v = obj.value(k);
|
||||
if (v.isObject()) {
|
||||
obj = v.toObject();
|
||||
if (obj.keys().contains("Version")) {
|
||||
QJsonValue const &w = obj.value("Version");
|
||||
if (w.isString()) {
|
||||
QString s = w.toString();
|
||||
QPair<QString, QString> p(k, s);
|
||||
vec.push_back(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
qCritical() << __func__ << ":" << __LINE__
|
||||
<< "ERROR array return by ptuPackageVersions empty";
|
||||
}
|
||||
} else {
|
||||
qCritical() << __func__ << ":" << __LINE__
|
||||
<< "ERROR executing ptuPackageVersions";
|
||||
}
|
||||
|
||||
return vec;
|
||||
}
|
||||
|
||||
int Utils::read1stLineOfFile(QString fileName) {
|
||||
QFile f(fileName);
|
||||
if (f.exists()) {
|
||||
|
Reference in New Issue
Block a user