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 <gunnar@beutner.name>
This commit is contained in:
Mhd Sulhan 2015-10-22 22:49:42 +07:00 committed by Gunnar Beutner
parent 618e031f46
commit 977d94839b
1 changed files with 7 additions and 8 deletions

View File

@ -48,7 +48,7 @@ std::vector<String> 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: