Commit 03c20617 authored by Marshall Pierce's avatar Marshall Pierce
Browse files

Merge remote-tracking branch 'origin/features/command-line-arguments' into...

Merge remote-tracking branch 'origin/features/command-line-arguments' into features/set-client-cluster-version
parents 82549272 1f3121d2
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
#ifndef COMMAND_LINE_FLAGS_H_
#define COMMAND_LINE_FLAGS_H_

#include "kinetic/kinetic.h"

#include "gflags/gflags.h"

DEFINE_string(host, "localhost", "Kinetic Host");
DEFINE_uint64(port, 8123, "Kinetic Port");
DEFINE_uint64(timeout, 30, "Timeout");
DEFINE_uint64(user_id, 1, "Kinetic User ID");
DEFINE_string(hmac_key, "asdfasdf", "Kinetic User HMAC key");

void parse_flags(int *argc, char*** argv, std::unique_ptr<kinetic::ConnectionHandle>& connection) {
    google::ParseCommandLineFlags(argc, argv, true);

    kinetic::ConnectionOptions options;
    options.host = FLAGS_host;
    options.port = FLAGS_port;
    options.user_id = FLAGS_user_id;
    options.hmac_key = FLAGS_hmac_key;

    kinetic::KineticConnectionFactory kinetic_connection_factory = kinetic::NewKineticConnectionFactory();

    if (!kinetic_connection_factory.NewConnection(options, FLAGS_timeout, connection).ok()) {
        printf("Unable to connect\n");
        exit(1);
    }
}


#endif  // COMMAND_LINE_FLAGS_H_
+10 −25
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@

#include "kinetic/kinetic.h"

#include "command_line_flags.h"

using kinetic::KineticConnectionFactory;
using kinetic::Status;
using kinetic::KineticRecord;
@@ -12,37 +14,20 @@ using std::string;
using std::make_shared;
using std::unique_ptr;

int main(int argc, char* argv[]) {
    if (argc != 4 && argc != 5) {
        printf("%s: <host> <port> <new pin>\n", argv[0]);
        printf("%s: <host> <port> <old pin> <new pin>\n", argv[0]);
        return 1;
    }

    const char* host = argv[1];
    int port = atoi(argv[2]);

    kinetic::ConnectionOptions options;
    options.host = host;
    options.port = port;
    options.user_id = 1;
    options.hmac_key = "asdfasdf";

    kinetic::KineticConnectionFactory kinetic_connection_factory = kinetic::NewKineticConnectionFactory();
DEFINE_string(new_pin, "", "New PIN");
DEFINE_string(old_pin, "", "Old PIN");

int main(int argc, char* argv[]) {
    unique_ptr<kinetic::ConnectionHandle> connection;
    if (!kinetic_connection_factory.NewConnection(options, 5, connection).ok()) {
        printf("Unable to connect\n");
        return 1;
    }
    parse_flags(&argc, &argv, connection);

    bool success;

    if (argc == 4) {
        success = connection->blocking().SetPin(make_shared<string>(argv[3])).ok();
    if (FLAGS_old_pin.empty()) {
        success = connection->blocking().SetPin(make_shared<string>(FLAGS_new_pin)).ok();
    } else {
        auto pin = make_shared<string>(argv[3]);
        success = connection->blocking().SetPin(make_shared<string>(argv[4]), pin).ok();
        auto pin = make_shared<string>(FLAGS_old_pin);
        success = connection->blocking().SetPin(make_shared<string>(FLAGS_new_pin), pin).ok();
    }

    if (success) {