summaryrefslogtreecommitdiffstats
path: root/installerbuilder
diff options
context:
space:
mode:
authorTim Jenssen <tim.jenssen@nokia.com>2011-12-06 16:37:59 +0100
committerTim Jenssen <tim.jenssen@nokia.com>2011-12-07 11:13:04 +0100
commit02887b3ea7e77e859507c03dc0f89e23509b83ad (patch)
tree237f766aa966a28918ceb206c898e2419a43a660 /installerbuilder
parent8441a23978bfca3aa45c4c7f02dbc8a00bdddc8e (diff)
use replaces for the arguments in PackageManagerCore::execute
Change-Id: Ib3c71a769deff71766ac75f32c72e83929784f71 Reviewed-by: Niels Weber <niels.2.weber@nokia.com> Reviewed-by: Alexander Lenhardt <alexander.lenhardt@nokia.com> Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder')
-rw-r--r--installerbuilder/libinstaller/packagemanagercore.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/installerbuilder/libinstaller/packagemanagercore.cpp b/installerbuilder/libinstaller/packagemanagercore.cpp
index f3737a3ff..e2c9b7f21 100644
--- a/installerbuilder/libinstaller/packagemanagercore.cpp
+++ b/installerbuilder/libinstaller/packagemanagercore.cpp
@@ -1062,23 +1062,32 @@ QList<QVariant> PackageManagerCore::execute(const QString &program, const QStrin
const QString &stdIn) const
{
QEventLoop loop;
- QProcessWrapper p;
+ QProcessWrapper process;
- connect(&p, SIGNAL(finished(int, QProcess::ExitStatus)), &loop, SLOT(quit()));
- p.start(program, arguments, stdIn.isNull() ? QIODevice::ReadOnly : QIODevice::ReadWrite);
+ QString adjustedProgram = replaceVariables(program);
+ QStringList adjustedArguments;
+ foreach (const QString &argument, arguments)
+ adjustedArguments.append(replaceVariables(argument));
+ QString adjustedStdIn = replaceVariables(stdIn);
- if (!p.waitForStarted())
+ connect(&process, SIGNAL(finished(int, QProcess::ExitStatus)), &loop, SLOT(quit()));
+ process.start(adjustedProgram, adjustedArguments,
+ adjustedStdIn.isNull() ? QIODevice::ReadOnly : QIODevice::ReadWrite);
+
+ if (!process.waitForStarted())
return QList< QVariant >();
- if (!stdIn.isNull()) {
- p.write(stdIn.toLatin1());
- p.closeWriteChannel();
+ if (!adjustedStdIn.isNull()) {
+ process.write(adjustedStdIn.toLatin1());
+ process.closeWriteChannel();
}
- if (p.state() != QProcessWrapper::NotRunning)
+ if (process.state() != QProcessWrapper::NotRunning)
loop.exec();
- return QList<QVariant>() << QString::fromLatin1(p.readAllStandardOutput()) << p.exitCode();
+ return QList<QVariant>() << QString::fromLatin1(process.readAllStandardOutput()) << process.exitCode();
+}
+
}
/*!