diff options
author | Tim Jenssen <tim.jenssen@nokia.com> | 2011-12-06 16:37:59 +0100 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2011-12-07 11:13:04 +0100 |
commit | 02887b3ea7e77e859507c03dc0f89e23509b83ad (patch) | |
tree | 237f766aa966a28918ceb206c898e2419a43a660 /installerbuilder | |
parent | 8441a23978bfca3aa45c4c7f02dbc8a00bdddc8e (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.cpp | 27 |
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(); +} + } /*! |