forked from qt-creator/qt-creator
LinuxProcessInterface: Fix error reporting on failed to start
Change-Id: I2af4a13289458e6270452a254cf90f7bd9cc3684 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -448,6 +448,11 @@ void SshProcessInterface::handleStarted(qint64 processId)
|
||||
emitStarted(processId);
|
||||
}
|
||||
|
||||
void SshProcessInterface::handleDone(const ProcessResultData &resultData)
|
||||
{
|
||||
emit done(resultData);
|
||||
}
|
||||
|
||||
void SshProcessInterface::handleReadyReadStandardOutput(const QByteArray &outputData)
|
||||
{
|
||||
emit readyRead(outputData, {});
|
||||
@@ -580,6 +585,20 @@ void LinuxProcessInterface::handleStarted(qint64 processId)
|
||||
emitStarted(processId);
|
||||
}
|
||||
|
||||
void LinuxProcessInterface::handleDone(const ProcessResultData &resultData)
|
||||
{
|
||||
ProcessResultData finalData = resultData;
|
||||
if (!m_pidParsed) {
|
||||
finalData.m_error = QProcess::FailedToStart;
|
||||
if (!m_error.isEmpty()) {
|
||||
if (!finalData.m_errorString.isEmpty())
|
||||
finalData.m_errorString += "\n";
|
||||
finalData.m_errorString += QString::fromLocal8Bit(m_error);
|
||||
}
|
||||
}
|
||||
emit done(finalData);
|
||||
}
|
||||
|
||||
void LinuxProcessInterface::handleReadyReadStandardOutput(const QByteArray &outputData)
|
||||
{
|
||||
if (m_pidParsed) {
|
||||
@@ -690,8 +709,9 @@ void SshProcessInterfacePrivate::handleStarted()
|
||||
|
||||
void SshProcessInterfacePrivate::handleDone()
|
||||
{
|
||||
m_connectionHandle.reset();
|
||||
emit q->done(m_process.resultData());
|
||||
if (m_connectionHandle) // TODO: should it disconnect from signals first?
|
||||
m_connectionHandle.release()->deleteLater();
|
||||
q->handleDone(m_process.resultData());
|
||||
}
|
||||
|
||||
void SshProcessInterfacePrivate::handleReadyReadStandardOutput()
|
||||
|
||||
@@ -44,6 +44,7 @@ private:
|
||||
void sendControlSignal(Utils::ControlSignal controlSignal) override;
|
||||
|
||||
void handleStarted(qint64 processId) final;
|
||||
void handleDone(const Utils::ProcessResultData &resultData);
|
||||
void handleReadyReadStandardOutput(const QByteArray &outputData) final;
|
||||
void handleReadyReadStandardError(const QByteArray &errorData) final;
|
||||
|
||||
|
||||
@@ -51,12 +51,23 @@ public:
|
||||
{
|
||||
connect(&m_mkdir, &QtcProcess::done, this, [this] {
|
||||
if (m_mkdir.result() != ProcessResult::FinishedWithSuccess) {
|
||||
emit errorMessage(tr("Failed to create remote directories: %1").arg(m_mkdir.stdErr()));
|
||||
QString finalMessage = m_mkdir.errorString();
|
||||
const QString stdErr = m_mkdir.stdErr();
|
||||
if (!stdErr.isEmpty()) {
|
||||
if (!finalMessage.isEmpty())
|
||||
finalMessage += '\n';
|
||||
finalMessage += stdErr;
|
||||
}
|
||||
emit errorMessage(tr("Deploy via rsync: failed to create remote directories:")
|
||||
+ '\n' + finalMessage);
|
||||
setFinished();
|
||||
return;
|
||||
}
|
||||
deployFiles();
|
||||
});
|
||||
connect(&m_mkdir, &QtcProcess::readyReadStandardError, this, [this] {
|
||||
emit stdErrData(QString::fromLocal8Bit(m_mkdir.readAllStandardError()));
|
||||
});
|
||||
connect(&m_fileTransfer, &FileTransfer::progress,
|
||||
this, &AbstractRemoteLinuxDeployService::stdOutData);
|
||||
connect(&m_fileTransfer, &FileTransfer::done, this, [this](const ProcessResultData &result) {
|
||||
|
||||
@@ -50,6 +50,7 @@ protected:
|
||||
|
||||
private:
|
||||
virtual void handleStarted(qint64 processId);
|
||||
virtual void handleDone(const Utils::ProcessResultData &resultData);
|
||||
virtual void handleReadyReadStandardOutput(const QByteArray &outputData);
|
||||
virtual void handleReadyReadStandardError(const QByteArray &errorData);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user