Print to stdout in order to make grep working

cleanup-proxy-code
Simon Stürz 2023-02-24 14:11:22 +01:00
parent 06e8457744
commit 45dcf5e62a
6 changed files with 33 additions and 22 deletions

View File

@ -84,8 +84,8 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
if (parser.isSet(noninteractiveOption)) { if (parser.isSet(noninteractiveOption) || parser.isSet(jsonOption)) {
NonInteractiveMonitor *monitor = new NonInteractiveMonitor(parser.value(socketOption), parser.isSet(allOption), &application); NonInteractiveMonitor *monitor = new NonInteractiveMonitor(parser.value(socketOption), parser.isSet(jsonOption), parser.isSet(allOption), &application);
Q_UNUSED(monitor); Q_UNUSED(monitor);
} else { } else {
if (parser.isSet(allOption)) { if (parser.isSet(allOption)) {

View File

@ -26,6 +26,7 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include "monitorclient.h" #include "monitorclient.h"
#include "utils.h"
#include <QJsonDocument> #include <QJsonDocument>
@ -62,8 +63,10 @@ void MonitorClient::processBufferData()
} }
if (m_jsonMode) { if (m_jsonMode) {
qDebug() << qUtf8Printable(jsonDoc.toJson(QJsonDocument::Indented)); qStdOut() << qUtf8Printable(jsonDoc.toJson(QJsonDocument::Indented)) << "\n";
return; QTextStream out(stdout);
out.flush();
exit(EXIT_FAILURE);
} }
QVariantMap dataMap = jsonDoc.toVariant().toMap(); QVariantMap dataMap = jsonDoc.toVariant().toMap();

View File

@ -43,7 +43,6 @@ public:
bool printAll() const; bool printAll() const;
void setPrintAll(bool printAll); void setPrintAll(bool printAll);
private: private:
QLocalSocket *m_socket = nullptr; QLocalSocket *m_socket = nullptr;

View File

@ -29,11 +29,13 @@
#include "utils.h" #include "utils.h"
#include <QDebug> #include <QDebug>
#include <QTextStream>
NonInteractiveMonitor::NonInteractiveMonitor(const QString &serverName, bool printAll, QObject *parent) NonInteractiveMonitor::NonInteractiveMonitor(const QString &serverName, bool jsonMode, bool printAll, QObject *parent)
: QObject{parent} : QObject{parent},
m_jsonMode{jsonMode}
{ {
m_monitorClient = new MonitorClient(serverName, false, this); m_monitorClient = new MonitorClient(serverName, m_jsonMode, this);
m_monitorClient->setPrintAll(printAll); m_monitorClient->setPrintAll(printAll);
connect(m_monitorClient, &MonitorClient::connected, this, &NonInteractiveMonitor::onConnected); connect(m_monitorClient, &MonitorClient::connected, this, &NonInteractiveMonitor::onConnected);
@ -47,20 +49,20 @@ void NonInteractiveMonitor::onConnected()
QVariantMap tunnelProxyMap = dataMap.value("tunnelProxyStatistic").toMap(); QVariantMap tunnelProxyMap = dataMap.value("tunnelProxyStatistic").toMap();
qInfo().noquote() << "---------------------------------------------------------------------"; qStdOut() << "---------------------------------------------------------------------\n";
qInfo().noquote() << "Server name:" << dataMap.value("serverName", "-").toString(); qStdOut() << "Server name:" << dataMap.value("serverName", "-").toString() << "\n";
qInfo().noquote() << "Server version:" << dataMap.value("serverVersion", "-").toString(); qStdOut() << "Server version:" << dataMap.value("serverVersion", "-").toString() << "\n";
qInfo().noquote() << "API version:" << dataMap.value("apiVersion", "-").toString(); qStdOut() << "API version:" << dataMap.value("apiVersion", "-").toString() << "\n";
qInfo().noquote() << "Total client count:" << tunnelProxyMap.value("totalClientCount", 0).toInt(); qStdOut() << "Total client count:" << tunnelProxyMap.value("totalClientCount", 0).toInt() << "\n";
qInfo().noquote() << "Server connections:" << tunnelProxyMap.value("serverConnectionsCount", 0).toInt(); qStdOut() << "Server connections:" << tunnelProxyMap.value("serverConnectionsCount", 0).toInt() << "\n";
qInfo().noquote() << "Client connections:" << tunnelProxyMap.value("clientConnectionsCount", 0).toInt(); qStdOut() << "Client connections:" << tunnelProxyMap.value("clientConnectionsCount", 0).toInt() << "\n";
qInfo().noquote() << "Data troughput:" << Utils::humanReadableTraffic(tunnelProxyMap.value("troughput", 0).toInt()) + " / s"; qStdOut() << "Data troughput:" << Utils::humanReadableTraffic(tunnelProxyMap.value("troughput", 0).toInt()) + " / s" << "\n";
qInfo().noquote() << "---------------------------------------------------------------------"; qStdOut() << "---------------------------------------------------------------------" << "\n";
QVariantMap transportsMap = tunnelProxyMap.value("transports").toMap(); QVariantMap transportsMap = tunnelProxyMap.value("transports").toMap();
foreach(const QString &transportInterface, transportsMap.keys()) { foreach(const QString &transportInterface, transportsMap.keys()) {
qInfo().noquote().nospace() << "Connections on " << transportInterface << ": " << transportsMap.value(transportInterface).toInt(); qStdOut() << "Connections on " << transportInterface << ": " << transportsMap.value(transportInterface).toInt() << "\n";
} }
qInfo().noquote() << "---------------------------------------------------------------------"; qStdOut() << "---------------------------------------------------------------------" << "\n";
foreach (const QVariant &serverVariant, tunnelProxyMap.value("tunnelConnections").toList()) { foreach (const QVariant &serverVariant, tunnelProxyMap.value("tunnelConnections").toList()) {
QVariantMap serverMap = serverVariant.toMap(); QVariantMap serverMap = serverVariant.toMap();
@ -83,7 +85,7 @@ void NonInteractiveMonitor::onConnected()
.arg(Utils::humanReadableTraffic(serverMap.value("txDataCount").toInt()), - 9) .arg(Utils::humanReadableTraffic(serverMap.value("txDataCount").toInt()), - 9)
.arg(serverMap.value("name").toString()); .arg(serverMap.value("name").toString());
qInfo().noquote() << serverLinePrint; qStdOut() << serverLinePrint << "\n";
for (int cc = 0; cc < clientList.count(); cc++) { for (int cc = 0; cc < clientList.count(); cc++) {
QVariantMap clientMap = clientList.at(cc).toMap(); QVariantMap clientMap = clientList.at(cc).toMap();
@ -102,7 +104,7 @@ void NonInteractiveMonitor::onConnected()
.arg(Utils::humanReadableTraffic(serverMap.value("txDataCount").toInt()), - 9) .arg(Utils::humanReadableTraffic(serverMap.value("txDataCount").toInt()), - 9)
.arg(clientMap.value("name").toString(), -30); .arg(clientMap.value("name").toString(), -30);
qInfo().noquote() << clientLinePrint; qStdOut() << clientLinePrint << "\n";
} }
} }

View File

@ -35,10 +35,11 @@ class NonInteractiveMonitor : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit NonInteractiveMonitor(const QString &serverName, bool printAll = false, QObject *parent = nullptr); explicit NonInteractiveMonitor(const QString &serverName, bool jsonMode, bool printAll = false, QObject *parent = nullptr);
private: private:
MonitorClient *m_monitorClient = nullptr; MonitorClient *m_monitorClient = nullptr;
bool m_jsonMode = false;
private slots: private slots:
void onConnected(); void onConnected();

View File

@ -28,9 +28,15 @@
#ifndef UTILS_H #ifndef UTILS_H
#define UTILS_H #define UTILS_H
#include <QTextStream>
#include <QString> #include <QString>
#include <QDateTime> #include <QDateTime>
inline QTextStream& qStdOut() {
static QTextStream ts(stdout);
return ts;
}
class Utils { class Utils {
public: public: