save files with comment

This commit is contained in:
2025-01-09 15:22:10 +01:00
parent 7bfb7f5a3b
commit 8f822c5383
17 changed files with 441 additions and 54 deletions

View File

@@ -18,9 +18,99 @@
#include <QJsonValue>
#include <QJsonObject>
#include <QJsonArray>
#include <QStringList>
#include <QDirIterator>
#include <fstream>
QVector<QPair<QString, QString>> Utils::installedJsonFiles(QDir const &customerDir) {
QVector<QPair<QString, QString>> vec;
QStringList fileList;
QDirIterator it(QDir::cleanPath(customerDir.absolutePath() + QDir::separator() + "etc/psa_config"));
while (it.hasNext()) {
QFileInfo const fi(it.next());
if (fi.fileName().startsWith("DC2C") && fi.fileName().endsWith(".json")) {
fileList << fi.absoluteFilePath();
}
}
fileList.sort();
QString const &current = QDir::current().absolutePath();
if (!QDir::setCurrent(customerDir.absolutePath())) {
qCritical() << __func__ << ":" << __LINE__ << ": ERROR: can not set"
<< "working directory to" << customerDir.absolutePath();
} else {
for (int i = 0; i < fileList.size(); ++i) {
QProcess p;
QStringList params;
params << "-c" << "git log -n 1 --pretty=format:%H -- " << fileList[i];
p.start("bash", params);
p.waitForFinished();
QString r = p.readAllStandardOutput().left(8);
vec.push_back(QPair<QString, QString>(QFileInfo(fileList[i]).fileName(), r));
}
if (!QDir::setCurrent(current)) {
qCritical() << __func__ << ":" << __LINE__ << ": ERROR: can not set"
<< "working directory to" << current;
}
}
return vec;
}
QVector<QPair<QString, QString>> Utils::installedTariffFiles(QDir const &customerDir) {
QVector<QPair<QString, QString>> vec;
QStringList fileList;
QDirIterator it(QDir::cleanPath(customerDir.absolutePath() + QDir::separator() + "etc/psa_tariff"));
while (it.hasNext()) {
QFileInfo const fi(it.next());
if (fi.fileName().startsWith("tariff") && fi.fileName().endsWith(".json")) {
fileList << fi.absoluteFilePath();
}
}
fileList.sort();
QString const &current = QDir::current().absolutePath();
if (!QDir::setCurrent(customerDir.absolutePath())) {
qCritical() << __func__ << ":" << __LINE__ << ": ERROR: can not set"
<< "working directory to" << customerDir.absolutePath();
} else {
for (int i = 0; i < fileList.size(); ++i) {
QProcess p;
QStringList params;
params << "-c" << "git log -n 1 --pretty=format:%H -- " << fileList[i];
qCritical() << current << "git log -n 1 --pretty=format:%H -- " << fileList[i];
p.start("bash", params);
p.waitForFinished();
QString r = p.readAllStandardOutput().left(8);
vec.push_back(QPair<QString, QString>(QFileInfo(fileList[i]).fileName(), r));
}
if (!QDir::setCurrent(current)) {
qCritical() << __func__ << ":" << __LINE__ << ": ERROR: can not set"
<< "working directory to" << current;
}
}
return vec;
}
QVector<QPair<QString, QString>> Utils::installedPackages() {
QVector<QPair<QString, QString>> vec;
if (QFile::exists("/usr/bin/ptuPackageVersions")) {
@@ -165,7 +255,7 @@ QString Utils::getTariffInfo(QString fileName) {
}
QString Utils::zoneName(quint8 i) {
QString Utils::zoneName(quint8 /* i */) {
//static constexpr char const *zName[] = {
// "",
// "purple",