update:更新终端调用aptss命令展示可更新列表

This commit is contained in:
2025-05-28 20:40:40 +08:00
parent b8846eb9b6
commit 65172300be
5 changed files with 72 additions and 1 deletions

36
src/aptssupdater.cpp Normal file
View File

@@ -0,0 +1,36 @@
#include "aptssupdater.h"
#include <QProcess>
#include <QTextStream>
#include <QRegularExpression>
aptssUpdater::aptssUpdater(QWidget *parent)
: QWidget(parent)
{
}
QStringList aptssUpdater::getUpdateablePackages()
{
QStringList packageDetails;
QProcess process;
process.start("bash", QStringList() << "-c" << "aptss list --upgradable");
process.waitForFinished();
QString output = process.readAllStandardOutput();
QTextStream stream(&output);
// 跳过第一行(提示信息)
stream.readLine();
while (!stream.atEnd()) {
QString line = stream.readLine();
QRegularExpression regex(R"((\S+)/\S+\s+\S+\s+\S+\s+\[(.+)\])");
QRegularExpressionMatch match = regex.match(line);
if (match.hasMatch()) {
QString packageName = match.captured(1);
QString updateDetails = match.captured(2);
packageDetails << QString("%1: %2").arg(packageName, updateDetails);
}
}
return packageDetails;
}