diff --git a/src/main.cpp b/src/main.cpp index 9a61700..67b2af6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -27,25 +27,34 @@ gebaar::io::Input* input; int main(int argc, char* argv[]) { - cxxopts::Options options(argv[0], "Gebaard Gestures Daemon"); + try + { + cxxopts::Options options(argv[0], "Gebaard Gestures Daemon"); - bool should_daemonize = false; + bool should_daemonize = false; - options.add_options() - ("b,background", "Daemonize", cxxopts::value(should_daemonize)) - ("h,help", "Prints this help text"); + options.add_options() + ("b,background", "Daemonize", cxxopts::value(should_daemonize)) + ("h,help", "Prints this help text"); - auto result = options.parse(argc, argv); + auto result = options.parse(argc, argv); - if (result.count("help")) { - std::cout << options.help() << std::endl; - exit(EXIT_SUCCESS); - } + if (result.count("help")) { + std::cout << options.help() << std::endl; + exit(EXIT_SUCCESS); + } + + if (should_daemonize) { + auto *daemonizer = new gebaar::daemonizer::Daemonizer(); + daemonizer->daemonize(); + } - if (should_daemonize) { - auto *daemonizer = new gebaar::daemonizer::Daemonizer(); - daemonizer->daemonize(); + } catch (const cxxopts::OptionException& e) + { + std::cerr << "error parsing options: " << e.what() << std::endl; + exit(EXIT_FAILURE); } + std::shared_ptr config = std::make_shared(); input = new gebaar::io::Input(config); if (input->initialize()) {