diff options
author | LennyMcLennington <lenny@sneed.church> | 2022-07-23 18:06:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-23 18:06:12 +0100 |
commit | 4596e78df0bc85cd1cffab01c973f6d4cb490319 (patch) | |
tree | cb1546e057086dd93f063518c3d644fcd8d60955 /launcher/launch/LaunchTask.cpp | |
parent | 6aad750fe037cfdc46db846e6cc507f112f745ed (diff) | |
parent | ba7dfb360c53b717b76ba7197ae40d2f9f59a659 (diff) | |
download | PrismLauncher-4596e78df0bc85cd1cffab01c973f6d4cb490319.tar.gz PrismLauncher-4596e78df0bc85cd1cffab01c973f6d4cb490319.tar.bz2 PrismLauncher-4596e78df0bc85cd1cffab01c973f6d4cb490319.zip |
Merge pull request #952 from Scrumplex/fix-pre-post-launch
Fix variable substitution in pre launch/post exit hooks
Diffstat (limited to 'launcher/launch/LaunchTask.cpp')
-rw-r--r-- | launcher/launch/LaunchTask.cpp | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/launcher/launch/LaunchTask.cpp b/launcher/launch/LaunchTask.cpp index 3aa95052..28fcc4f4 100644 --- a/launcher/launch/LaunchTask.cpp +++ b/launcher/launch/LaunchTask.cpp @@ -282,35 +282,22 @@ void LaunchTask::emitFailed(QString reason) Task::emitFailed(reason); } -void LaunchTask::substituteVariables(const QStringList &args) const +void LaunchTask::substituteVariables(QStringList &args) const { - auto variables = m_instance->getVariables(); - auto envVariables = QProcessEnvironment::systemEnvironment(); + auto env = m_instance->createEnvironment(); - for (auto arg : args) { - for (auto key : variables) - { - arg.replace("$" + key, variables.value(key)); - } - for (auto env : envVariables.keys()) - { - arg.replace("$" + env, envVariables.value(env)); - } + for (auto key : env.keys()) + { + args.replaceInStrings("$" + key, env.value(key)); } } -QString LaunchTask::substituteVariables(const QString &cmd) const +void LaunchTask::substituteVariables(QString &cmd) const { - QString out = cmd; - auto variables = m_instance->getVariables(); - for (auto it = variables.begin(); it != variables.end(); ++it) - { - out.replace("$" + it.key(), it.value()); - } - auto env = QProcessEnvironment::systemEnvironment(); - for (auto var : env.keys()) + auto env = m_instance->createEnvironment(); + + for (auto key : env.keys()) { - out.replace("$" + var, env.value(var)); + cmd.replace("$" + key, env.value(key)); } - return out; } |