19 static int joedb_push(
int argc,
char **argv)
22 const bool local =
false;
24 Connection_Parser connection_parser(local);
29 if (arg_index < argc && std::strcmp(argv[arg_index],
"--follow") == 0)
35 int64_t until_checkpoint = std::numeric_limits<int64_t>::max();
37 if (arg_index + 1 < argc && std::strcmp(argv[arg_index],
"--until") == 0)
39 until_checkpoint = std::atoll(argv[arg_index + 1]);
43 if (arg_index >= argc)
45 std::cerr <<
"usage: " << argv[0];
46 std::cerr <<
" [--follow] [--until <checkpoint>] <file> <connection>\n\n";
47 file_parser.print_help(std::cerr);
48 connection_parser.print_help(std::cerr);
52 Buffered_File &file = *file_parser.parse(std::cerr, argc, argv, arg_index);
53 Readonly_Journal journal(file);
55 Connection &connection = connection_parser.build
62 int64_t from_checkpoint = connection.handshake(journal,
true);
67 from_checkpoint < until_checkpoint &&
71 if (journal.get_checkpoint_position() > from_checkpoint)
73 from_checkpoint = connection.push_until
84 std::this_thread::sleep_for(std::chrono::seconds(1));
96int main(
int argc,
char **argv)
@ read_existing
fails if does not exist
int main_exception_catcher(int(*main)(int, char **), int argc, char **argv)
Catch exception from main.