GH-991 implement wrapper commands

This commit is contained in:
Petr Mrázek
2015-05-24 14:49:54 +02:00
parent ce99fabe13
commit dfb0a3b724
5 changed files with 46 additions and 7 deletions

View File

@ -42,6 +42,7 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s
// Custom Commands
m_settings->registerSetting({"OverrideCommands","OverrideLaunchCmd"}, false);
m_settings->registerOverride(globalSettings->getSetting("PreLaunchCommand"));
m_settings->registerOverride(globalSettings->getSetting("WrapperCommand"));
m_settings->registerOverride(globalSettings->getSetting("PostExitCommand"));
// Console

View File

@ -238,8 +238,27 @@ void MinecraftProcess::arm()
QString allArgs = args.join(", ");
emit log("Java Arguments:\n[" + censorPrivateInfo(allArgs) + "]\n\n");
// instantiate the launcher part
start(JavaPath, args);
QString wrapperCommand = m_instance->settings()->get("WrapperCommand").toString();
if(!wrapperCommand.isEmpty())
{
auto realWrapperCommand = QStandardPaths::findExecutable(wrapperCommand);
if (realWrapperCommand.isEmpty())
{
emit log(tr("The wrapper command \"%1\" couldn't be found.").arg(wrapperCommand), MessageLevel::Warning);
m_instance->cleanupAfterRun();
emit launch_failed(m_instance);
m_instance->setRunning(false);
return;
}
emit log("Wrapper command is:\n" + wrapperCommand + "\n\n");
args.prepend(JavaPath);
start(wrapperCommand, args);
}
else
{
start(JavaPath, args);
}
if (!waitForStarted())
{
//: Error message displayed if instace can't start