From 00bc0b230357bf02c1c9da4ca59c2d359c73a538 Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Tue, 7 May 2019 12:43:53 +0200 Subject: [PATCH] CLI: Return non-zero on unknown sub commands fixes #6585 --- icinga-app/icinga.cpp | 9 +++++++-- lib/cli/clicommand.cpp | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) 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); -- 2.40.0