summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--logic/launch/steps/PostLaunchCommand.cpp22
-rw-r--r--logic/launch/steps/PreLaunchCommand.cpp19
2 files changed, 34 insertions, 7 deletions
diff --git a/logic/launch/steps/PostLaunchCommand.cpp b/logic/launch/steps/PostLaunchCommand.cpp
index c7342188..29a45f1b 100644
--- a/logic/launch/steps/PostLaunchCommand.cpp
+++ b/logic/launch/steps/PostLaunchCommand.cpp
@@ -34,20 +34,34 @@ void PostLaunchCommand::executeTask()
void PostLaunchCommand::on_state(LoggedProcess::State state)
{
+ auto getError = [&]()
+ {
+ return tr("Post-Launch command failed with code %1.\n\n").arg(m_process.exitCode());
+ };
switch(state)
{
case LoggedProcess::Aborted:
case LoggedProcess::Crashed:
case LoggedProcess::FailedToStart:
{
- QString error = tr("Post-Launch command failed with code %1.\n\n").arg(m_process.exitCode());
- emit logLine(error, MessageLevel::Error);
+ auto error = getError();
+ emit logLine(error, MessageLevel::Fatal);
emitFailed(error);
+ return;
}
case LoggedProcess::Finished:
{
- emit logLine(tr("Post-Launch command ran successfully.\n\n"), MessageLevel::MultiMC);
- emitSucceeded();
+ if(m_process.exitCode() != 0)
+ {
+ auto error = getError();
+ emit logLine(error, MessageLevel::Fatal);
+ emitFailed(error);
+ }
+ else
+ {
+ emit logLine(tr("Post-Launch command ran successfully.\n\n"), MessageLevel::MultiMC);
+ emitSucceeded();
+ }
}
default:
break;
diff --git a/logic/launch/steps/PreLaunchCommand.cpp b/logic/launch/steps/PreLaunchCommand.cpp
index 5d5862d8..47197a82 100644
--- a/logic/launch/steps/PreLaunchCommand.cpp
+++ b/logic/launch/steps/PreLaunchCommand.cpp
@@ -35,21 +35,34 @@ void PreLaunchCommand::executeTask()
void PreLaunchCommand::on_state(LoggedProcess::State state)
{
+ auto getError = [&]()
+ {
+ return tr("Pre-Launch command failed with code %1.\n\n").arg(m_process.exitCode());
+ };
switch(state)
{
case LoggedProcess::Aborted:
case LoggedProcess::Crashed:
case LoggedProcess::FailedToStart:
{
- QString error = tr("Pre-Launch command failed with code %1.\n\n").arg(m_process.exitCode());
+ auto error = getError();
emit logLine(error, MessageLevel::Fatal);
emitFailed(error);
return;
}
case LoggedProcess::Finished:
{
- emit logLine(tr("Pre-Launch command ran successfully.\n\n"), MessageLevel::MultiMC);
- emitSucceeded();
+ if(m_process.exitCode() != 0)
+ {
+ auto error = getError();
+ emit logLine(error, MessageLevel::Fatal);
+ emitFailed(error);
+ }
+ else
+ {
+ emit logLine(tr("Pre-Launch command ran successfully.\n\n"), MessageLevel::MultiMC);
+ emitSucceeded();
+ }
}
default:
break;