add helper proto

This commit is contained in:
arcan1s
2014-08-08 19:33:36 +04:00
parent 1ae30b0821
commit 6a3e3b14b3
23 changed files with 875 additions and 60 deletions

View File

@ -19,15 +19,24 @@
#include "taskadds.h"
TaskResult runTask(const QString cmd)
TaskResult runTask(const QString cmd, const bool sudo)
{
return Task::await<TaskResult>( [ & ]() {
SandboxProcess command;
command.start(cmd);
command.waitForFinished(-1);
TaskResult r;
r.exitCode = command.exitCode();
r.output = command.readAllStandardOutput();
if (sudo) {
QProcess command;
command.start(cmd);
command.waitForFinished(-1);
r.exitCode = command.exitCode();
r.output = command.readAllStandardOutput();
}
else {
RootProcess command;
command.start(cmd);
command.waitForFinished(-1);
r.exitCode = command.exitCode();
r.output = command.readAllStandardOutput();
}
return r;
});

View File

@ -25,9 +25,9 @@
#include "task.h"
class SandboxProcess : public QProcess
class RootProcess : public QProcess
{
protected:
protected:
void setupChildProcess()
{
::setuid(0);
@ -40,7 +40,7 @@ struct TaskResult
int exitCode;
QByteArray output;
};
TaskResult runTask(const QString cmd);
TaskResult runTask(const QString cmd, const bool sudo = false);
#endif /* TASKADDS_H */