Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. // please ignore the messiness of the code, a placed a number of debugs just to see the code response.
  2.  
  3. cmd = "cd /tmp/tempdir ; ./my_script file.txt ; echo $?"      (without quotes)
  4. input => required input from script
  5.  
  6. QString gen_serv::runCommand(QString cmd, QString input){
  7.     Process *p = new QProcess(parent);
  8.     p->setProcessChannelMode(QProcess::MergedChannels);
  9.     //    p->start("sh ", QStringList() << " -c " << cmd);
  10.     QString c = QString("sh -c \"" + cmd + "\" ");
  11.     p->start(c);
  12.     if (p->waitForStarted()) {
  13.         if (!p->waitForReadyRead()) {
  14.             qDebug(log_lib_gen_serv) << "waitForReadyRead() [false] : CODE: " << QVariant(p->error()).toString() << " | ERROR STRING: " << p->errorString();
  15.         }
  16.         if (!p->waitForFinished(1000)) {
  17.             qDebug() << p->readAll();
  18.             qDebug() << p->readAllStandardOutput();
  19.             p->write(QString(input + QString("\n")).toLatin1());
  20.             qDebug() << p->readAll();
  21.             qDebug() << p->readAllStandardOutput();
  22.             if (!p->waitForFinished()) {
  23.                 qDebug() << p->readAll();
  24.                 qDebug() << p->readAllStandardOutput();
  25.                 qDebug(log_lib_gen_serv) << "waitForFinished() [false] : CODE: " << QVariant(p->error()).toString() << " | ERROR STRING: " << p->errorString();
  26.             }
  27.             qDebug() << p->readAll();
  28.             qDebug() << p->readAllStandardOutput();
  29.         }
  30.         QString s = QString(p->readAll() + p->readAllStandardOutput());
  31.         return s;
  32.     }
  33.     else{
  34.         qDebug(log_lib_gen_serv) << "waitForStarted() [false] : CODE: " << QVariant(p->error()).toString() << " | ERROR STRING: " << p->errorString();
  35.     }
  36.     p->waitForFinished();
  37.     p->kill();
  38.     return QString();
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement