diff --git a/navcat.cc b/navcat.cc index 592641b..48350d9 100644 --- a/navcat.cc +++ b/navcat.cc @@ -55,7 +55,7 @@ vector getSources(string_view dirname) } -void sendProtobuf(string_view dir, time_t startTime, time_t stopTime=0) +void sendProtobuf(string_view dir, vector stations, time_t startTime, time_t stopTime=0) { timespec start; start.tv_sec = startTime; @@ -67,7 +67,7 @@ void sendProtobuf(string_view dir, time_t startTime, time_t stopTime=0) for(;;) { cerr<<"Gathering data"< srcs = stations.empty() ? getSources(dir) : stations; rnmms.clear(); for(const auto& src: srcs) { string fname = getPath(dir, start.tv_sec, src); @@ -127,32 +127,35 @@ void sendProtobuf(string_view dir, time_t startTime, time_t stopTime=0) int main(int argc, char** argv) { bool doVERSION{false}; - /* + CLI::App app(program); - + string beginarg, endarg, storage; + app.add_option("--storage,-s", storage, "Location of storage files"); + vector stations; app.add_flag("--version", doVERSION, "show program version and copyright"); - app.allow_extras(true); // allow bare positional parameters - try { - app.parse(argc, argv); - } catch(const CLI::Error &e) { - return app.exit(e); - } + app.add_option("--begin,-b", beginarg, "Begin time (2020-01-01 00:00, or 12:30)")->required(); + app.add_option("--end,-e", endarg, "End time. Now if omitted"); + app.add_option("--stations", stations, "only send data from listed stations"); + CLI11_PARSE(app, argc, argv); + + if(doVERSION) { showVersion(program, g_gitHash); exit(0); } - */ - signal(SIGPIPE, SIG_IGN); - if(argc < 3) { - cout<<"Syntax: navcat storage start stop"<