mirror of https://github.com/Icinga/icinga2.git
Fix crash when running 'icinga2 console' without HOME environment variable
fixes #6019
This commit is contained in:
parent
3122e44087
commit
3e3658b7a5
|
@ -286,17 +286,22 @@ int ConsoleCommand::RunScriptConsole(ScriptFrame& scriptFrame, const String& add
|
|||
int next_line = 1;
|
||||
|
||||
#ifdef HAVE_EDITLINE
|
||||
String homeEnv = getenv("HOME");
|
||||
String historyPath = homeEnv + "/.icinga2_history";
|
||||
char *homeEnv = getenv("HOME");
|
||||
|
||||
String historyPath;
|
||||
std::fstream historyfp;
|
||||
historyfp.open(historyPath.CStr(), std::fstream::in);
|
||||
|
||||
String line;
|
||||
while (std::getline(historyfp, line.GetData()))
|
||||
add_history(line.CStr());
|
||||
if (homeEnv) {
|
||||
historyPath = String(homeEnv) + "/.icinga2_history";
|
||||
|
||||
historyfp.close();
|
||||
historyfp.open(historyPath.CStr(), std::fstream::in);
|
||||
|
||||
String line;
|
||||
while (std::getline(historyfp, line.GetData()))
|
||||
add_history(line.CStr());
|
||||
|
||||
historyfp.close();
|
||||
}
|
||||
#endif /* HAVE_EDITLINE */
|
||||
|
||||
l_ScriptFrame = &scriptFrame;
|
||||
|
@ -369,9 +374,11 @@ incomplete:
|
|||
if (commandOnce.IsEmpty() && cline[0] != '\0') {
|
||||
add_history(cline);
|
||||
|
||||
historyfp.open(historyPath.CStr(), std::fstream::out | std::fstream::app);
|
||||
historyfp << cline << "\n";
|
||||
historyfp.close();
|
||||
if (!historyPath.IsEmpty()) {
|
||||
historyfp.open(historyPath.CStr(), std::fstream::out | std::fstream::app);
|
||||
historyfp << cline << "\n";
|
||||
historyfp.close();
|
||||
}
|
||||
}
|
||||
|
||||
line = cline;
|
||||
|
|
Loading…
Reference in New Issue