#include "processexecutor.h" #include #include #include ProcessResult ProcessExecutor::run(const PIString & command, const PIStringList & args, int timeoutSeconds, const PIString & workingDir) { PIProcess proc; proc.enableReadStdOut(true); proc.enableReadStdErr(true); if (!workingDir.isEmpty()) { proc.setWorkingDirectory(workingDir); } proc.exec(command, args); proc.waitForFinish(PISystemTime::fromSeconds(timeoutSeconds)); PIByteArray stdoutData = proc.readOutput(); PIByteArray stderrData = proc.readError(); int rc = proc.exitCode(); proc.stopAndWait(); ProcessResult result; result.exitCode = rc; result.output = PIString::fromUTF8(stdoutData); result.error = PIString::fromUTF8(stderrData); return result; }