mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-10-28 11:14:58 +00:00
prevent reboot on filesystem upload
This commit is contained in:
+9
-8
@@ -1774,6 +1774,15 @@ void EMSESP::start() {
|
|||||||
// start web log service. now we can start capturing logs to the web log
|
// start web log service. now we can start capturing logs to the web log
|
||||||
webLogService.begin();
|
webLogService.begin();
|
||||||
|
|
||||||
|
#ifndef EMSESP_STANDALONE
|
||||||
|
// apply any uploaded settings before any service loads them from the filesystem
|
||||||
|
if (system_.check_restore()) {
|
||||||
|
root = LittleFS.open(EMSESP_SETTINGS_FILE);
|
||||||
|
factory_settings = !root;
|
||||||
|
root.close();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// loads core system services settings (mqtt, ap, ntp etc)
|
// loads core system services settings (mqtt, ap, ntp etc)
|
||||||
esp32React.begin();
|
esp32React.begin();
|
||||||
|
|
||||||
@@ -1829,14 +1838,6 @@ void EMSESP::start() {
|
|||||||
LOG_INFO("Last system reset reason Core0: %s, Core1: %s", system_.reset_reason(0).c_str(), system_.reset_reason(1).c_str());
|
LOG_INFO("Last system reset reason Core0: %s, Core1: %s", system_.reset_reason(0).c_str(), system_.reset_reason(1).c_str());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// see if we're restoring a settings file
|
|
||||||
#ifndef EMSESP_STANDALONE
|
|
||||||
if (system_.check_restore()) {
|
|
||||||
LOG_WARNING("EMS-ESP will restart to apply new settings. Please wait.");
|
|
||||||
system_.system_restart();
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
webSettingsService.begin(); // load EMS-ESP Application settings
|
webSettingsService.begin(); // load EMS-ESP Application settings
|
||||||
|
|
||||||
LOG_DEBUG("System name: %s", system_.system_name().c_str());
|
LOG_DEBUG("System name: %s", system_.system_name().c_str());
|
||||||
|
|||||||
+12
-11
@@ -1362,8 +1362,9 @@ void System::show_system(uuid::console::Shell & shell) {
|
|||||||
|
|
||||||
// see if there is a restore of an older settings file that needs to be applied
|
// see if there is a restore of an older settings file that needs to be applied
|
||||||
// note there can be only one file at a time
|
// note there can be only one file at a time
|
||||||
|
// called at boot before any services load their settings, returns true if system settings files were restored
|
||||||
bool System::check_restore() {
|
bool System::check_restore() {
|
||||||
bool reboot_required = false; // true if we need to reboot
|
bool settings_restored = false; // true if system settings files were restored
|
||||||
|
|
||||||
#ifndef EMSESP_STANDALONE
|
#ifndef EMSESP_STANDALONE
|
||||||
File new_file = LittleFS.open(TEMP_FILENAME_PATH);
|
File new_file = LittleFS.open(TEMP_FILENAME_PATH);
|
||||||
@@ -1378,7 +1379,7 @@ bool System::check_restore() {
|
|||||||
|
|
||||||
// system backup, which is a consolidated json object with all the settings files
|
// system backup, which is a consolidated json object with all the settings files
|
||||||
if (settings_type == "systembackup") {
|
if (settings_type == "systembackup") {
|
||||||
reboot_required = true;
|
settings_restored = true;
|
||||||
JsonArray sections = input["systembackup"].as<JsonArray>();
|
JsonArray sections = input["systembackup"].as<JsonArray>();
|
||||||
for (JsonObject section : sections) {
|
for (JsonObject section : sections) {
|
||||||
std::string section_type = section["type"];
|
std::string section_type = section["type"];
|
||||||
@@ -1507,14 +1508,14 @@ bool System::check_restore() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// It's a single settings file. Parse each section separately. If it's system related it will require a reboot
|
// It's a single settings file. Parse each section separately
|
||||||
else if (settings_type == "settings") {
|
else if (settings_type == "settings") {
|
||||||
reboot_required = saveSettings(NETWORK_SETTINGS_FILE, input);
|
settings_restored = saveSettings(NETWORK_SETTINGS_FILE, input);
|
||||||
reboot_required |= saveSettings(AP_SETTINGS_FILE, input);
|
settings_restored |= saveSettings(AP_SETTINGS_FILE, input);
|
||||||
reboot_required |= saveSettings(MQTT_SETTINGS_FILE, input);
|
settings_restored |= saveSettings(MQTT_SETTINGS_FILE, input);
|
||||||
reboot_required |= saveSettings(NTP_SETTINGS_FILE, input);
|
settings_restored |= saveSettings(NTP_SETTINGS_FILE, input);
|
||||||
reboot_required |= saveSettings(SECURITY_SETTINGS_FILE, input);
|
settings_restored |= saveSettings(SECURITY_SETTINGS_FILE, input);
|
||||||
reboot_required |= saveSettings(EMSESP_SETTINGS_FILE, input);
|
settings_restored |= saveSettings(EMSESP_SETTINGS_FILE, input);
|
||||||
} else if (settings_type == "customizations") {
|
} else if (settings_type == "customizations") {
|
||||||
saveSettings(EMSESP_CUSTOMIZATION_FILE, input);
|
saveSettings(EMSESP_CUSTOMIZATION_FILE, input);
|
||||||
} else if (settings_type == "schedule") {
|
} else if (settings_type == "schedule") {
|
||||||
@@ -1526,7 +1527,7 @@ bool System::check_restore() {
|
|||||||
new_file.close();
|
new_file.close();
|
||||||
if (LittleFS.rename(TEMP_FILENAME_PATH, EMSESP_CUSTOMSUPPORT_FILE)) {
|
if (LittleFS.rename(TEMP_FILENAME_PATH, EMSESP_CUSTOMSUPPORT_FILE)) {
|
||||||
LOG_INFO("Custom support file stored");
|
LOG_INFO("Custom support file stored");
|
||||||
return false; // no need to reboot
|
return false;
|
||||||
} else {
|
} else {
|
||||||
LOG_ERROR("Failed to save custom support file");
|
LOG_ERROR("Failed to save custom support file");
|
||||||
}
|
}
|
||||||
@@ -1543,7 +1544,7 @@ bool System::check_restore() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return reboot_required;
|
return settings_restored;
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle upgrades from previous versions
|
// handle upgrades from previous versions
|
||||||
|
|||||||
Reference in New Issue
Block a user