diff options
Diffstat (limited to 'libLumina/LuminaUtils.cpp')
-rw-r--r-- | libLumina/LuminaUtils.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/libLumina/LuminaUtils.cpp b/libLumina/LuminaUtils.cpp new file mode 100644 index 00000000..8a652e96 --- /dev/null +++ b/libLumina/LuminaUtils.cpp @@ -0,0 +1,66 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2013, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +#include "LuminaUtils.h" + +int LUtils::runCmd(QString cmd, QStringList args){ + QProcess *proc = new QProcess; + proc->setProcessChannelMode(QProcess::MergedChannels); + if(args.isEmpty()){ + proc->start(cmd); + }else{ + proc->start(cmd, args); + } + while(!proc->waitForFinished(300)){ + QCoreApplication::processEvents(); + } + int ret = proc->exitCode(); + delete proc; + return ret; + +} + +QStringList LUtils::getCmdOutput(QString cmd, QStringList args){ + QProcess *proc = new QProcess; + proc->setProcessChannelMode(QProcess::MergedChannels); + if(args.isEmpty()){ + proc->start(cmd); + }else{ + proc->start(cmd,args); + } + while(!proc->waitForFinished(300)){ + QCoreApplication::processEvents(); + } + QStringList out = QString(proc->readAllStandardOutput()).split("\n"); + delete proc; + return out; +} + +QStringList LUtils::readFile(QString filepath){ + QStringList out; + QFile file(filepath); + if(file.open(QIODevice::Text | QIODevice::ReadOnly)){ + QTextStream in(&file); + while(!in.atEnd()){ + out << in.readLine(); + } + file.close(); + } + return out; +} + +bool LUtils::writeFile(QString filepath, QStringList contents, bool overwrite){ + QFile file(filepath); + QFile::OpenMode mode = overwrite ? (QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate) : (QIODevice::WriteOnly | QIODevice::Text); + bool ok = false; + if(file.open( mode ) ){ + QTextStream out(&file); + for(int i=0; i<contents.length(); i++){ out << contents[i]; } + file.close(); + ok = true; + } + return ok; +} |