From 0d353cfbcf1b9f98bc21498fd6464119c0642822 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Tue, 10 Oct 2023 16:01:45 +0200 Subject: [PATCH] Check if opkg_command failed, and if this is the case, stop the update-process without showing a wrong UPDATE-SUCCESS. --- worker.cpp | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/worker.cpp b/worker.cpp index f2c5879..4b95a8c 100644 --- a/worker.cpp +++ b/worker.cpp @@ -795,39 +795,47 @@ bool Worker::updateFiles(quint8 percent) { if (f.exists()) { if (f.open(QIODevice::ReadOnly)) { QTextStream in(&f); - int cmdCount = 0; QStringList opkgCommands; + bool executeOpkgCommandFailed = false; while (!in.atEnd()) { QString line = in.readLine(); static const QRegularExpression comment("^\\s*#.*$"); if (line.indexOf(comment, 0) == -1) { // found opkg command QString opkgCommand = line.trimmed(); - ++cmdCount; - executeOpkgCommand(opkgCommand); - QString cmd = "\n " + opkgCommand; - emit appendText(cmd); - opkgCommands << cmd; + if (!executeOpkgCommand(opkgCommand)) { + executeOpkgCommandFailed = true; + } else { + QString cmd = "\n " + opkgCommand; + emit appendText(cmd); + opkgCommands << cmd; - m_ismasClient.setProgressInPercent(++percent); - m_updateStatus = UpdateStatus(UPDATE_STATUS::EXEC_OPKG_COMMAND, - QString("EXEC OPKG-COMMAND ") + opkgCommand); - IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT, - QString("#M=APISM#C=CMD_EVENT#J=") + - m_ismasClient.execOpkgCommand(m_updateStatus.m_statusDescription, "")); + m_ismasClient.setProgressInPercent(++percent); + m_updateStatus = UpdateStatus(UPDATE_STATUS::EXEC_OPKG_COMMAND, + QString("EXEC OPKG-COMMAND ") + opkgCommand); + IsmasClient::sendRequestReceiveResponse(IsmasClient::APISM::DB_PORT, + QString("#M=APISM#C=CMD_EVENT#J=") + + m_ismasClient.execOpkgCommand(m_updateStatus.m_statusDescription, "")); + } } } f.close(); - if (cmdCount > 0) { - m_displayIndex = 1; - QString prepend = QString("(") + QString("%1").arg(m_displayIndex).rightJustified(3, ' ') + QString(")") - + QString(" Update opkg pakets ... "); - opkgCommands.prepend(prepend); - emit replaceLast(opkgCommands, UPDATE_STEP_DONE); + if (!executeOpkgCommandFailed) { + if (opkgCommands.size() > 0) { + m_displayIndex = 1; + QString prepend = QString("(") + QString("%1").arg(m_displayIndex).rightJustified(3, ' ') + QString(")") + + QString(" Update opkg pakets ... "); + opkgCommands.prepend(prepend); + emit replaceLast(opkgCommands, UPDATE_STEP_DONE); + } } else { m_displayIndex = 1; emit replaceLast(QString("(") + QString("%1").arg(m_displayIndex).rightJustified(3, ' ') + QString(")") + QString(" Update opkg pakets ... "), UPDATE_STEP_FAIL); + + stopProgressLoop(); + setProgress(100); + return false; } } }