~imalinovskiy/rdm/0.8

« back to all changes in this revision

Viewing changes to 3rdparty/qredisclient/cli/main.cpp

  • Committer: RDM Bot
  • Date: 2016-02-04 11:29:17 UTC
  • Revision ID: git-v1:92436de8ed24fe0a57651f4a61caba27995ad55b
Pull updates from https://github.com/uglide/RedisDesktopManager

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <QCoreApplication>
 
2
#include <QCommandLineParser>
 
3
#include <QDebug>
 
4
 
 
5
#include <iostream>
 
6
#include "qredisclient/redisclient.h"
 
7
 
 
8
int main(int argc, char *argv[])
 
9
{
 
10
    QCoreApplication app( argc, argv );
 
11
    initRedisClient();
 
12
 
 
13
    QCoreApplication::setApplicationName("qredis-cli");
 
14
    QCoreApplication::setApplicationVersion("0.0.1");
 
15
 
 
16
    QCommandLineParser parser;
 
17
    parser.setApplicationDescription("redis-cli powered by qredisclient");
 
18
    parser.addHelpOption();
 
19
    parser.addVersionOption();
 
20
    parser.process(app);
 
21
 
 
22
    QStringList positionals = parser.positionalArguments();
 
23
 
 
24
    if (positionals.size() == 0) {
 
25
        parser.showHelp();
 
26
        return 0;
 
27
    }
 
28
 
 
29
    RedisClient::ConnectionConfig config("127.0.0.1");
 
30
    config.setPort(7000);
 
31
    RedisClient::Connection connection(config);
 
32
 
 
33
    // convert QStringList to QList<QByteArray>
 
34
    QList<QByteArray> cmd;
 
35
    for (QString part: positionals) {
 
36
        cmd.append(part.toUtf8());
 
37
    }
 
38
 
 
39
    QObject::connect(&connection, &RedisClient::Connection::log, [](QString msg) {
 
40
        qDebug() << "Connection:" << msg;
 
41
    });
 
42
 
 
43
    QObject::connect(&connection, &RedisClient::Connection::error, [](QString msg) {
 
44
        qDebug() << "Connection error:" << msg;
 
45
    });
 
46
 
 
47
    try {
 
48
        connection.connect();
 
49
        auto result = connection.commandSync(cmd);
 
50
        QVariant val = result.getValue();
 
51
        std::cout << RedisClient::Response::valueToHumanReadString(val).toStdString();
 
52
    } catch (const RedisClient::Connection::Exception& e) {
 
53
        std::cerr << "Cannot run command:" << e.what();
 
54
    }
 
55
}