summaryrefslogtreecommitdiffstats
path: root/logic/launch/steps/PreLaunchCommand.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logic/launch/steps/PreLaunchCommand.cpp')
-rw-r--r--logic/launch/steps/PreLaunchCommand.cpp19
1 files changed, 16 insertions, 3 deletions
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;