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);
|
emitStarted(processId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SshProcessInterface::handleDone(const ProcessResultData &resultData)
|
||||||
|
{
|
||||||
|
emit done(resultData);
|
||||||
|
}
|
||||||
|
|
||||||
void SshProcessInterface::handleReadyReadStandardOutput(const QByteArray &outputData)
|
void SshProcessInterface::handleReadyReadStandardOutput(const QByteArray &outputData)
|
||||||
{
|
{
|
||||||
emit readyRead(outputData, {});
|
emit readyRead(outputData, {});
|
||||||
@@ -580,6 +585,20 @@ void LinuxProcessInterface::handleStarted(qint64 processId)
|
|||||||
emitStarted(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)
|
void LinuxProcessInterface::handleReadyReadStandardOutput(const QByteArray &outputData)
|
||||||
{
|
{
|
||||||
if (m_pidParsed) {
|
if (m_pidParsed) {
|
||||||
@@ -690,8 +709,9 @@ void SshProcessInterfacePrivate::handleStarted()
|
|||||||
|
|
||||||
void SshProcessInterfacePrivate::handleDone()
|
void SshProcessInterfacePrivate::handleDone()
|
||||||
{
|
{
|
||||||
m_connectionHandle.reset();
|
if (m_connectionHandle) // TODO: should it disconnect from signals first?
|
||||||
emit q->done(m_process.resultData());
|
m_connectionHandle.release()->deleteLater();
|
||||||
|
q->handleDone(m_process.resultData());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SshProcessInterfacePrivate::handleReadyReadStandardOutput()
|
void SshProcessInterfacePrivate::handleReadyReadStandardOutput()
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ private:
|
|||||||
void sendControlSignal(Utils::ControlSignal controlSignal) override;
|
void sendControlSignal(Utils::ControlSignal controlSignal) override;
|
||||||
|
|
||||||
void handleStarted(qint64 processId) final;
|
void handleStarted(qint64 processId) final;
|
||||||
|
void handleDone(const Utils::ProcessResultData &resultData);
|
||||||
void handleReadyReadStandardOutput(const QByteArray &outputData) final;
|
void handleReadyReadStandardOutput(const QByteArray &outputData) final;
|
||||||
void handleReadyReadStandardError(const QByteArray &errorData) final;
|
void handleReadyReadStandardError(const QByteArray &errorData) final;
|
||||||
|
|
||||||
|
|||||||
@@ -51,12 +51,23 @@ public:
|
|||||||
{
|
{
|
||||||
connect(&m_mkdir, &QtcProcess::done, this, [this] {
|
connect(&m_mkdir, &QtcProcess::done, this, [this] {
|
||||||
if (m_mkdir.result() != ProcessResult::FinishedWithSuccess) {
|
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();
|
setFinished();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
deployFiles();
|
deployFiles();
|
||||||
});
|
});
|
||||||
|
connect(&m_mkdir, &QtcProcess::readyReadStandardError, this, [this] {
|
||||||
|
emit stdErrData(QString::fromLocal8Bit(m_mkdir.readAllStandardError()));
|
||||||
|
});
|
||||||
connect(&m_fileTransfer, &FileTransfer::progress,
|
connect(&m_fileTransfer, &FileTransfer::progress,
|
||||||
this, &AbstractRemoteLinuxDeployService::stdOutData);
|
this, &AbstractRemoteLinuxDeployService::stdOutData);
|
||||||
connect(&m_fileTransfer, &FileTransfer::done, this, [this](const ProcessResultData &result) {
|
connect(&m_fileTransfer, &FileTransfer::done, this, [this](const ProcessResultData &result) {
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void handleStarted(qint64 processId);
|
virtual void handleStarted(qint64 processId);
|
||||||
|
virtual void handleDone(const Utils::ProcessResultData &resultData);
|
||||||
virtual void handleReadyReadStandardOutput(const QByteArray &outputData);
|
virtual void handleReadyReadStandardOutput(const QByteArray &outputData);
|
||||||
virtual void handleReadyReadStandardError(const QByteArray &errorData);
|
virtual void handleReadyReadStandardError(const QByteArray &errorData);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user