Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // please ignore the messiness of the code, a placed a number of debugs just to see the code response.
- cmd = "cd /tmp/tempdir ; ./my_script file.txt ; echo $?" (without quotes)
- input => required input from script
- QString gen_serv::runCommand(QString cmd, QString input){
- Process *p = new QProcess(parent);
- p->setProcessChannelMode(QProcess::MergedChannels);
- // p->start("sh ", QStringList() << " -c " << cmd);
- QString c = QString("sh -c \"" + cmd + "\" ");
- p->start(c);
- if (p->waitForStarted()) {
- if (!p->waitForReadyRead()) {
- qDebug(log_lib_gen_serv) << "waitForReadyRead() [false] : CODE: " << QVariant(p->error()).toString() << " | ERROR STRING: " << p->errorString();
- }
- if (!p->waitForFinished(1000)) {
- qDebug() << p->readAll();
- qDebug() << p->readAllStandardOutput();
- p->write(QString(input + QString("\n")).toLatin1());
- qDebug() << p->readAll();
- qDebug() << p->readAllStandardOutput();
- if (!p->waitForFinished()) {
- qDebug() << p->readAll();
- qDebug() << p->readAllStandardOutput();
- qDebug(log_lib_gen_serv) << "waitForFinished() [false] : CODE: " << QVariant(p->error()).toString() << " | ERROR STRING: " << p->errorString();
- }
- qDebug() << p->readAll();
- qDebug() << p->readAllStandardOutput();
- }
- QString s = QString(p->readAll() + p->readAllStandardOutput());
- return s;
- }
- else{
- qDebug(log_lib_gen_serv) << "waitForStarted() [false] : CODE: " << QVariant(p->error()).toString() << " | ERROR STRING: " << p->errorString();
- }
- p->waitForFinished();
- p->kill();
- return QString();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement