9 #include "spdlog/spdlog.h" 10 #include "spdlog/sinks/stdout_color_sinks.h" 14 #include "core/LongOptions.h" 15 #include "core/Arguments.h" 16 #include "core/OutputStreamHandler.h" 18 #include "master/AbstractMaster.h" 19 #include "controller/AbstractController.h" 37 bool is_help_flag(
const std::string& flag)
39 return (flag.compare(
"-h") == 0) || (flag.compare(
"--help") == 0);
45 lopts.
add({
"help", no_argument,
nullptr,
'h'});
46 lopts.
add({
"ignore-errors", no_argument,
nullptr,
'i'});
47 lopts.
add({
"discard-child-stderr", no_argument,
nullptr,
'd'});
48 lopts.
add({
"verbosity", required_argument,
nullptr,
'v'});
49 lopts.
add({
"output-file", required_argument,
nullptr,
'o'});
57 help(master, controller, EXIT_SUCCESS);
69 if (arg.compare(
"info") == 0)
70 spdlog::set_level(spdlog::level::info);
71 else if (arg.compare(
"debug") == 0)
72 spdlog::set_level(spdlog::level::debug);
73 else if (arg.compare(
"off") == 0)
74 spdlog::set_level(spdlog::level::off);
76 help(master, controller, EXIT_FAILURE);
83 int main(
int argc,
char *argv[])
90 spdlog::set_default_logger(stderr_console);
91 spdlog::set_level(spdlog::level::info);
111 if (is_help_flag(argv[2]))
112 help(master, controller, EXIT_FAILURE);
125 if (is_help_flag(argv[2]))
126 help(master, controller, EXIT_FAILURE);
140 add_general_long_options(lopts);
150 process_general_options(master, controller, args);
157 catch (
const std::exception& e)
160 std::string error_msg;
161 error_msg +=
"An exception occurred while running ";
164 error_msg +=
" what(): ";
165 error_msg += e.what();
167 std::cerr << error_msg;
void overview(int status)
static controller_t getController(const std::string &arg)
static void cleanup(master_t master)
static void run(master_t master, controller_t controller, const Arguments &args)
bool g_program_terminated
std::chrono::milliseconds g_kill_timeout
const char * g_program_name
bool g_discard_child_stderr
std::chrono::milliseconds g_main_timeout
static void addLongOptions(master_t master, LongOptions &lopts)
void help(master_t master, controller_t controller, int status)
static master_t getMaster(const std::string &arg)
bool isOptionalArgumentSet(const std::string &option_name) const
void add(struct option long_opt)
std::string g_output_file
static void addLongOptions(controller_t controller, LongOptions &lopts)
std::string optionalArgument(const std::string &option_name) const