diff --git a/icinga-app/icinga.cpp b/icinga-app/icinga.cpp index 5d3e3165e..ca103f314 100644 --- a/icinga-app/icinga.cpp +++ b/icinga-app/icinga.cpp @@ -327,8 +327,13 @@ static int Main() po::variables_map vm; try { - CLICommand::ParseCommand(argc, argv, visibleDesc, hiddenDesc, positionalDesc, - vm, cmdname, command, autocomplete); + if (!CLICommand::ParseCommand(argc, argv, visibleDesc, hiddenDesc, positionalDesc, + vm, cmdname, command, autocomplete)) { + + Log(LogCritical, "icinga-app") + << "Command parsing error. Try '--help'."; + return EXIT_FAILURE; + } } catch (const std::exception& ex) { Log(LogCritical, "icinga-app") << "Error while parsing command-line options: " << ex.what(); diff --git a/lib/cli/clicommand.cpp b/lib/cli/clicommand.cpp index 878beac77..7e93c5c61 100644 --- a/lib/cli/clicommand.cpp +++ b/lib/cli/clicommand.cpp @@ -200,9 +200,12 @@ found_command: visibleDesc.add(vdesc); } - if (autocomplete || (tried_command && !command)) + if (autocomplete) return true; + if (tried_command && !command) + return false; + po::options_description adesc; adesc.add(visibleDesc); adesc.add(hiddenDesc);