Check if opkg_command failed, and if this is the case, stop the

update-process without showing a wrong UPDATE-SUCCESS.
This commit is contained in:
Gerhard Hoffmann 2023-10-10 16:01:45 +02:00
parent bdcb073bf8
commit 0d353cfbcf

View File

@ -795,39 +795,47 @@ bool Worker::updateFiles(quint8 percent) {
if (f.exists()) { if (f.exists()) {
if (f.open(QIODevice::ReadOnly)) { if (f.open(QIODevice::ReadOnly)) {
QTextStream in(&f); QTextStream in(&f);
int cmdCount = 0;
QStringList opkgCommands; QStringList opkgCommands;
bool executeOpkgCommandFailed = false;
while (!in.atEnd()) { while (!in.atEnd()) {
QString line = in.readLine(); QString line = in.readLine();
static const QRegularExpression comment("^\\s*#.*$"); static const QRegularExpression comment("^\\s*#.*$");
if (line.indexOf(comment, 0) == -1) { if (line.indexOf(comment, 0) == -1) {
// found opkg command // found opkg command
QString opkgCommand = line.trimmed(); QString opkgCommand = line.trimmed();
++cmdCount; if (!executeOpkgCommand(opkgCommand)) {
executeOpkgCommand(opkgCommand); executeOpkgCommandFailed = true;
QString cmd = "\n " + opkgCommand; } else {
emit appendText(cmd); QString cmd = "\n " + opkgCommand;
opkgCommands << cmd; emit appendText(cmd);
opkgCommands << cmd;
m_ismasClient.setProgressInPercent(++percent); m_ismasClient.setProgressInPercent(++percent);
m_updateStatus = UpdateStatus(UPDATE_STATUS::EXEC_OPKG_COMMAND, m_updateStatus = UpdateStatus(UPDATE_STATUS::EXEC_OPKG_COMMAND,
QString("EXEC OPKG-COMMAND ") + opkgCommand); QString("EXEC OPKG-COMMAND ") + opkgCommand);
IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT, IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT,
QString("#M=APISM#C=CMD_EVENT#J=") + QString("#M=APISM#C=CMD_EVENT#J=") +
m_ismasClient.execOpkgCommand(m_updateStatus.m_statusDescription, "")); m_ismasClient.execOpkgCommand(m_updateStatus.m_statusDescription, ""));
}
} }
} }
f.close(); f.close();
if (cmdCount > 0) { if (!executeOpkgCommandFailed) {
m_displayIndex = 1; if (opkgCommands.size() > 0) {
QString prepend = QString("(") + QString("%1").arg(m_displayIndex).rightJustified(3, ' ') + QString(")") m_displayIndex = 1;
+ QString(" Update opkg pakets ... "); QString prepend = QString("(") + QString("%1").arg(m_displayIndex).rightJustified(3, ' ') + QString(")")
opkgCommands.prepend(prepend); + QString(" Update opkg pakets ... ");
emit replaceLast(opkgCommands, UPDATE_STEP_DONE); opkgCommands.prepend(prepend);
emit replaceLast(opkgCommands, UPDATE_STEP_DONE);
}
} else { } else {
m_displayIndex = 1; m_displayIndex = 1;
emit replaceLast(QString("(") + QString("%1").arg(m_displayIndex).rightJustified(3, ' ') + QString(")") emit replaceLast(QString("(") + QString("%1").arg(m_displayIndex).rightJustified(3, ' ') + QString(")")
+ QString(" Update opkg pakets ... "), UPDATE_STEP_FAIL); + QString(" Update opkg pakets ... "), UPDATE_STEP_FAIL);
stopProgressLoop();
setProgress(100);
return false;
} }
} }
} }