From 977d94839b6ae31fd42a231b0d06334a3895b9d8 Mon Sep 17 00:00:00 2001 From: Mhd Sulhan Date: Thu, 22 Oct 2015 22:49:42 +0700 Subject: [PATCH] CLI: Hide "Command options" if command is null Before this commit, if icinga2 command executed without any argument, the program will print empty "Command options". While at it, clean the whitespaces. fixes #10439 Signed-off-by: Gunnar Beutner --- lib/cli/clicommand.cpp | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/cli/clicommand.cpp b/lib/cli/clicommand.cpp index 30d52aa28..723f1ae46 100644 --- a/lib/cli/clicommand.cpp +++ b/lib/cli/clicommand.cpp @@ -48,7 +48,7 @@ std::vector icinga::GetBashCompletionSuggestions(const String& type, con result.push_back(wline); } fclose(fp); - + /* Append a slash if there's only one suggestion and it's a directory */ if ((type == "file" || type == "directory") && result.size() == 1) { String path = result[0]; @@ -200,12 +200,11 @@ bool CLICommand::ParseCommand(int argc, char **argv, po::options_description& vi found_command: lock.unlock(); - po::options_description vdesc("Command options"); - - if (command) + if (command) { + po::options_description vdesc("Command options"); command->InitParameters(vdesc, hiddenDesc); - - visibleDesc.add(vdesc); + visibleDesc.add(vdesc); + } if (autocomplete) return true; @@ -323,7 +322,7 @@ void CLICommand::ShowCommands(int argc, char **argv, po::options_description *vi } else if (autoindex - 1 >= 0 && argv[autoindex - 1][0] == '-' && argv[autoindex - 1][1] != '-') { aname = argv[autoindex - 1]; pword = aword; - + if (pword == "=") pword = ""; } else if (aword.GetLength() > 1 && aword[0] == '-' && aword[1] != '-') { @@ -349,7 +348,7 @@ void CLICommand::ShowCommands(int argc, char **argv, po::options_description *vi BOOST_FOREACH(const String& suggestion, command->GetArgumentSuggestions(odesc->long_name(), pword)) { std::cout << prefix << suggestion << "\n"; } - + return; complete_option: