added main routine
This commit is contained in:
parent
1e534a6c67
commit
ee5afc2387
2 changed files with 70 additions and 0 deletions
|
@ -81,3 +81,11 @@ target_link_libraries(
|
||||||
)
|
)
|
||||||
|
|
||||||
add_test(NAME test1 COMMAND $[PROJECT_NAME}_test)
|
add_test(NAME test1 COMMAND $[PROJECT_NAME}_test)
|
||||||
|
add_executable(${PROJECT_NAME} main.cpp)
|
||||||
|
target_link_libraries(
|
||||||
|
${PROJECT_NAME}
|
||||||
|
PRIVATE Boost::filesystem
|
||||||
|
Boost::system
|
||||||
|
Boost::program_options
|
||||||
|
dir_monitor
|
||||||
|
)
|
||||||
|
|
62
main.cpp
Normal file
62
main.cpp
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
/**
|
||||||
|
* @file main.cpp
|
||||||
|
* The main executable
|
||||||
|
*
|
||||||
|
* @author Tobias Schmidl
|
||||||
|
* @copyright Copyright © 2022, Tobias Schmidl
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "collector.hpp"
|
||||||
|
#include "monitor.hpp"
|
||||||
|
#include "version.hpp"
|
||||||
|
#include <boost/program_options.hpp>
|
||||||
|
#include <filesystem>
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
using namespace collector::monitor;
|
||||||
|
using namespace collector::collector;
|
||||||
|
using namespace boost::program_options;
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, const char* argv[])
|
||||||
|
{
|
||||||
|
std::cerr << argv[0] << " Version v" << VERSION << "\n";
|
||||||
|
options_description description{ "Options" };
|
||||||
|
description.add_options()("help,h", "Help screen")(
|
||||||
|
"input_dir,i", value<std::string>()->required(), "Input Directory")(
|
||||||
|
"output_file,o", value<std::string>()->required(), "Output Tarball");
|
||||||
|
variables_map vm;
|
||||||
|
try {
|
||||||
|
store(parse_command_line(argc, argv, description), vm);
|
||||||
|
notify(vm);
|
||||||
|
} catch (std::exception& err) {
|
||||||
|
std::cerr << "Error: " << err.what() << "\n";
|
||||||
|
std::cerr << description << std::endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::filesystem::path input_dir, output_file;
|
||||||
|
if (vm.count("help")) {
|
||||||
|
std::cerr << description << std::endl;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (vm.count("input_dir")) {
|
||||||
|
input_dir = vm["input_dir"].as<std::string>();
|
||||||
|
if (!std::filesystem::is_directory(input_dir)) {
|
||||||
|
std::cerr << input_dir << " is not a valid directory." << std::endl;
|
||||||
|
return 1;
|
||||||
|
} else
|
||||||
|
std::cerr << "input dir: " << input_dir << "\n";
|
||||||
|
}
|
||||||
|
if (vm.count("output_file")) {
|
||||||
|
output_file = vm["output_file"].as<std::string>();
|
||||||
|
std::cout << "output file: " << output_file << "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::asio::io_service service;
|
||||||
|
|
||||||
|
Collector collector(service, input_dir, output_file);
|
||||||
|
return (collector() && std::filesystem::is_regular_file(output_file)) ? 0
|
||||||
|
: 2;
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue