Merge pull request #5979 from Icinga/feature/enhance-console-5595

Add quit, exit and help
This commit is contained in:
Gunnar Beutner 2018-01-29 16:41:10 +01:00 committed by GitHub
commit b88149c455
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 4 deletions

View File

@ -135,7 +135,8 @@ void ConsoleCommand::BreakpointHandler(ScriptFrame& frame, ScriptError *ex, cons
ShowCodeLocation(std::cout, di); ShowCodeLocation(std::cout, di);
std::cout << "You can inspect expressions (such as variables) by entering them at the prompt.\n" std::cout << "You can inspect expressions (such as variables) by entering them at the prompt.\n"
<< "To leave the debugger and continue the program use \"$continue\".\n"; << "To leave the debugger and continue the program use \"$continue\".\n"
<< "For further commands see \"$help\".\n";
#ifdef HAVE_EDITLINE #ifdef HAVE_EDITLINE
rl_completion_entry_function = ConsoleCommand::ConsoleCompleteHelper; rl_completion_entry_function = ConsoleCommand::ConsoleCompleteHelper;
@ -240,7 +241,9 @@ int ConsoleCommand::Run(const po::variables_map& vm, const std::vector<std::stri
scriptFrame.Self = scriptFrame.Locals; scriptFrame.Self = scriptFrame.Locals;
if (!vm.count("eval") && !vm.count("file")) if (!vm.count("eval") && !vm.count("file"))
std::cout << "Icinga 2 (version: " << Application::GetAppVersion() << ")\n"; std::cout << "Icinga 2 (version: " << Application::GetAppVersion() << ")\n"
<< "Type $help to view available commands.\n";
const char *addrEnv = getenv("ICINGA2_API_URL"); const char *addrEnv = getenv("ICINGA2_API_URL");
if (addrEnv) if (addrEnv)
@ -392,10 +395,18 @@ incomplete:
line = commandOnce; line = commandOnce;
if (!line.empty() && line[0] == '$') { if (!line.empty() && line[0] == '$') {
if (line == "$continue") if (line == "$continue" || line == "$quit" || line == "$exit")
break; break;
else if (line == "$help")
std::cout << "Welcome to the Icinga 2 debug console.\n"
"Usable commands:\n"
" $continue Continue running Icinga 2 (script debugger).\n"
" $quit, $exit Stop debugging and quit the console.\n"
" $help Print this help.\n\n"
"For more information on how to use this console, please consult the documentation at https://icinga.com/docs\n";
else
std::cout << "Unknown debugger command: " << line << "\n";
std::cout << "Unknown debugger command: " << line << "\n";
continue; continue;
} }