mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-04-25 07:57:19 +00:00
end work on extscript class
This commit is contained in:
parent
0a61d926f8
commit
2cd04e1f7f
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
|
#include <QTextCodec>
|
||||||
|
|
||||||
#include <pdebug/pdebug.h>
|
#include <pdebug/pdebug.h>
|
||||||
#include <task/taskadds.h>
|
#include <task/taskadds.h>
|
||||||
@ -30,6 +31,7 @@ ExtScript::ExtScript(const QString scriptName, const QStringList directories, co
|
|||||||
dirs(directories),
|
dirs(directories),
|
||||||
debug(debugCmd)
|
debug(debugCmd)
|
||||||
{
|
{
|
||||||
|
readConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -175,29 +177,67 @@ void ExtScript::readConfiguration()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QMap<QString, QVariant> ExtScript::run(const int time)
|
||||||
|
{
|
||||||
|
if (debug) qDebug() << PDEBUG;
|
||||||
|
|
||||||
|
QMap<QString, QVariant> response;
|
||||||
|
if (time != interval) {
|
||||||
|
response[QString("refresh")] = false;
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
response[QString("refresh")] = true;
|
||||||
|
|
||||||
|
QStringList cmdList;
|
||||||
|
if (!prefix.isEmpty())
|
||||||
|
cmdList.append(prefix);
|
||||||
|
QString fullPath = name;
|
||||||
|
for (int i=0; i<dirs.count(); i++) {
|
||||||
|
if (!QDir(dirs[i]).entryList().contains(name)) continue;
|
||||||
|
fullPath = dirs[i] + QDir::separator() + name;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
cmdList.append(fullPath);
|
||||||
|
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmdList.join(QChar(' '));
|
||||||
|
TaskResult process = runTask(cmdList.join(QChar(' ')));
|
||||||
|
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
|
||||||
|
|
||||||
|
QString info = QTextCodec::codecForMib(106)->toUnicode(process.error).trimmed();
|
||||||
|
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output).trimmed();
|
||||||
|
switch(redirect) {
|
||||||
|
case stdout2stderr:
|
||||||
|
if (debug) qDebug() << PDEBUG << ":" << "Debug" << info;
|
||||||
|
if (debug) qDebug() << PDEBUG << ":" << "Output" << qoutput;
|
||||||
|
break;
|
||||||
|
case stderr2stdout:
|
||||||
|
response[QString("output")] = info + QString("\t") + qoutput;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (debug) qDebug() << PDEBUG << ":" << "Debug" << info;
|
||||||
|
response[QString("output")] = qoutput;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!output)
|
||||||
|
response[QString("output")] = QString::number(process.exitCode);
|
||||||
|
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void ExtScript::fromExternalConfiguration(const QMap<QString, QString> settings)
|
void ExtScript::fromExternalConfiguration(const QMap<QString, QString> settings)
|
||||||
{
|
{
|
||||||
if (settings.contains(QString("ACTIVE"))) {
|
if (settings.contains(QString("ACTIVE")))
|
||||||
if (settings[QString("ACTIVE")] == QString("true"))
|
setActive(settings[QString("ACTIVE")] == QString("true"));
|
||||||
setActive(true);
|
if (settings.contains(QString("INTERVAL")))
|
||||||
else
|
|
||||||
setActive(false);
|
|
||||||
}
|
|
||||||
if (settings.contains(QString("INTERVAL"))) {
|
|
||||||
setInterval(settings[QString("INTERVAL")].toInt());
|
setInterval(settings[QString("INTERVAL")].toInt());
|
||||||
}
|
if (settings.contains(QString("PREFIX")))
|
||||||
if (settings.contains(QString("PREFIX"))) {
|
|
||||||
setPrefix(settings[QString("PREFIX")]);
|
setPrefix(settings[QString("PREFIX")]);
|
||||||
}
|
if (settings.contains(QString("OUTPUT")))
|
||||||
if (settings.contains(QString("OUTPUT"))) {
|
setHasOutput(settings[QString("OUTPUT")] == QString("true"));
|
||||||
if (settings[QString("OUTPUT")] == QString("true"))
|
if (settings.contains(QString("REDIRECT")))
|
||||||
setHasOutput(true);
|
|
||||||
else
|
|
||||||
setHasOutput(false);
|
|
||||||
}
|
|
||||||
if (settings.contains(QString("REDIRECT"))) {
|
|
||||||
setRedirect((Redirect)settings[QString("REDIRECT")].toInt());
|
setRedirect((Redirect)settings[QString("REDIRECT")].toInt());
|
||||||
}
|
if (!output)
|
||||||
|
redirect = stdout2stderr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -232,17 +272,17 @@ QMap<QString, QString> ExtScript::toExternalConfiguration()
|
|||||||
if (debug) qDebug() << PDEBUG;
|
if (debug) qDebug() << PDEBUG;
|
||||||
|
|
||||||
QMap<QString, QString> settings;
|
QMap<QString, QString> settings;
|
||||||
if (isActive())
|
if (active)
|
||||||
settings[QString("ACTIVE")] = QString("true");
|
settings[QString("ACTIVE")] = QString("true");
|
||||||
else
|
else
|
||||||
settings[QString("ACTIVE")] = QString("false");
|
settings[QString("ACTIVE")] = QString("false");
|
||||||
settings[QString("INTERVAL")] = QString::number(getInterval());
|
settings[QString("INTERVAL")] = QString::number(interval);
|
||||||
settings[QString("PREFIX")] = getPrefix();
|
settings[QString("PREFIX")] = prefix;
|
||||||
if (hasOutput())
|
if (output)
|
||||||
settings[QString("OUTPUT")] = QString("true");
|
settings[QString("OUTPUT")] = QString("true");
|
||||||
else
|
else
|
||||||
settings[QString("OUTPUT")] = QString("false");
|
settings[QString("OUTPUT")] = QString("false");
|
||||||
settings[QString("REDIRECT")] = QString::number(getRedirect());
|
settings[QString("REDIRECT")] = QString::number(redirect);
|
||||||
|
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
|
@ -50,6 +50,7 @@ public:
|
|||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void readConfiguration();
|
void readConfiguration();
|
||||||
|
QMap<QString, QVariant> run(const int time);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// configuration
|
// configuration
|
||||||
|
Loading…
Reference in New Issue
Block a user