]> granicus.if.org Git - icinga2/commitdiff
Gracefully deal with unknown command-line options.
authorGunnar Beutner <gunnar.beutner@netways.de>
Sat, 2 Feb 2013 22:29:02 +0000 (23:29 +0100)
committerGunnar Beutner <gunnar.beutner@netways.de>
Sat, 2 Feb 2013 22:29:02 +0000 (23:29 +0100)
icinga-app/icinga.cpp

index 2b3ae47c7244fb732a2728b57c678224cf3103d3..b2d66235b016ee48d83417e019e94d7230ac9058 100644 (file)
@@ -88,7 +88,16 @@ int main(int argc, char **argv)
        ;
 
        po::variables_map vm;
-       po::store(po::parse_command_line(argc, argv, desc), vm);
+
+       try {
+               po::store(po::parse_command_line(argc, argv, desc), vm);
+       } catch (const po::unknown_option& ex) {
+               stringstream msgbuf;
+               msgbuf << "Error while parsing command-line options: " << ex.what();
+               Logger::Write(LogCritical, "icinga-app", msgbuf.str());
+               return EXIT_FAILURE;
+       }
+
        po::notify(vm);
 
        if (vm.count("debug"))
@@ -96,7 +105,6 @@ int main(int argc, char **argv)
 
        if (vm.count("help")) {
                std::cout << desc << "\n";
-
                return EXIT_SUCCESS;
        }