mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-20 03:01:36 +08:00
update:输出软件包大小
This commit is contained in:
@@ -22,15 +22,46 @@ QStringList aptssUpdater::getUpdateablePackages()
|
|||||||
|
|
||||||
while (!stream.atEnd()) {
|
while (!stream.atEnd()) {
|
||||||
QString line = stream.readLine();
|
QString line = stream.readLine();
|
||||||
QRegularExpression regex(R"((\S+)/\S+\s+\S+\s+\S+\s+\[可从该版本升级:(.+)\])");
|
QRegularExpression regex(R"((\S+)/\S+\s+(\S+)\s+\S+\s+\[可从该版本升级:(.+)\])");
|
||||||
QRegularExpressionMatch match = regex.match(line);
|
QRegularExpressionMatch match = regex.match(line);
|
||||||
|
|
||||||
if (match.hasMatch()) {
|
if (match.hasMatch()) {
|
||||||
QString packageName = match.captured(1);
|
QString packageName = match.captured(1);
|
||||||
QString updateDetails = match.captured(2);
|
QString currentVersion = match.captured(2);
|
||||||
packageDetails << QString("%1: %2").arg(packageName, updateDetails);
|
QString updateVersion = match.captured(3);
|
||||||
|
packageDetails << QString("%1 (%2 -> %3)").arg(packageName, currentVersion, updateVersion);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return packageDetails;
|
return packageDetails;
|
||||||
}
|
}
|
||||||
|
QStringList aptssUpdater::getPackageSizes()
|
||||||
|
{
|
||||||
|
QStringList packageSizes;
|
||||||
|
QProcess process;
|
||||||
|
process.start("bash", QStringList() << "-c" << "aptss upgrade --assume-no");
|
||||||
|
|
||||||
|
// 自动回复 "n" 以跳过交互式提示
|
||||||
|
if (process.waitForStarted()) {
|
||||||
|
process.write("n\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
process.waitForFinished();
|
||||||
|
|
||||||
|
QString output = process.readAllStandardOutput();
|
||||||
|
QTextStream stream(&output);
|
||||||
|
|
||||||
|
while (!stream.atEnd()) {
|
||||||
|
QString line = stream.readLine();
|
||||||
|
QRegularExpression regex(R"((\S+)\s+\S+\s+(\d+(?:\.\d+)?(?:KiB|MiB)))");
|
||||||
|
QRegularExpressionMatch match = regex.match(line);
|
||||||
|
|
||||||
|
if (match.hasMatch()) {
|
||||||
|
QString packageName = match.captured(1);
|
||||||
|
QString packageSize = match.captured(2);
|
||||||
|
packageSizes << QString("%1: %2").arg(packageName, packageSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return packageSizes;
|
||||||
|
}
|
||||||
@@ -12,7 +12,7 @@ public:
|
|||||||
|
|
||||||
QStringList getUpdateablePackages(); // 查询可更新包列表及更新内容
|
QStringList getUpdateablePackages(); // 查询可更新包列表及更新内容
|
||||||
qint64 getTotalDownloadSize(); // 获取更新总大小预估
|
qint64 getTotalDownloadSize(); // 获取更新总大小预估
|
||||||
|
QStringList getPackageSizes(); // 获取每个包的大小
|
||||||
signals:
|
signals:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,14 @@ void MainWindow::checkUpdates()
|
|||||||
|
|
||||||
// 获取可更新包列表
|
// 获取可更新包列表
|
||||||
QStringList updateablePackages = updater.getUpdateablePackages();
|
QStringList updateablePackages = updater.getUpdateablePackages();
|
||||||
|
QStringList packageSizes = updater.getPackageSizes();
|
||||||
|
|
||||||
qDebug() << "可更新包列表:";
|
qDebug() << "可更新包列表:";
|
||||||
for (const QString &package : updateablePackages) {
|
for (int i = 0; i < updateablePackages.size(); ++i) {
|
||||||
qDebug() << package;
|
QString packageInfo = updateablePackages.at(i);
|
||||||
|
QString packageSize = (i < packageSizes.size()) ? packageSizes.at(i) : "未知大小";
|
||||||
|
qDebug() << QString("%1 (%2)").arg(packageInfo, packageSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MainWindow::~MainWindow()
|
MainWindow::~MainWindow()
|
||||||
|
|||||||
Reference in New Issue
Block a user