workflow: update SPIFFS binary creation to exclude header
This commit is contained in:
parent
a5af4013d8
commit
9a59b91e88
4
.github/workflows/gitea-release.yml
vendored
4
.github/workflows/gitea-release.yml
vendored
@ -40,8 +40,8 @@ jobs:
|
||||
# Copy firmware binary
|
||||
cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/upgrade_filaman_firmware_v${VERSION}.bin
|
||||
|
||||
# Create SPIFFS binary with magic byte 0xE9
|
||||
( printf '\xe9\x03\x01\x00' && cat .pio/build/esp32dev/spiffs.bin ) > .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
|
||||
# Create SPIFFS binary without header
|
||||
cp .pio/build/esp32dev/spiffs.bin .pio.build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
|
||||
|
||||
# Create full binary
|
||||
(cd .pio/build/esp32dev &&
|
||||
|
4
.github/workflows/github-release.yml
vendored
4
.github/workflows/github-release.yml
vendored
@ -47,8 +47,8 @@ jobs:
|
||||
# Copy firmware binary
|
||||
cp .pio/build/esp32dev/firmware.bin .pio/build/esp32dev/upgrade_filaman_firmware_v${VERSION}.bin
|
||||
|
||||
# Create SPIFFS binary with magic byte 0xE9
|
||||
( printf '\xe9\x03\x01\x00' && cat .pio/build/esp32dev/spiffs.bin ) > .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
|
||||
# Create SPIFFS binary without header
|
||||
cp .pio/build/esp32dev/spiffs.bin .pio/build/esp32dev/upgrade_filaman_website_v${VERSION}.bin
|
||||
|
||||
# Create full binary (always)
|
||||
(cd .pio/build/esp32dev &&
|
||||
|
@ -7,7 +7,6 @@
|
||||
#include "nfc.h"
|
||||
#include "scale.h"
|
||||
#include "esp_task_wdt.h"
|
||||
#include "esp_log.h"
|
||||
#include <Update.h>
|
||||
#include "display.h"
|
||||
|
||||
@ -394,34 +393,35 @@ void setupWebserver(AsyncWebServer &server) {
|
||||
static size_t updateSize = 0;
|
||||
static int command = 0;
|
||||
|
||||
oledShowMessage("Upgrade please wait");
|
||||
//oledShowMessage("Upgrade please wait");
|
||||
|
||||
if (!index) {
|
||||
// Reduziere Debug-Level während des Updates
|
||||
esp_log_level_set("*", ESP_LOG_ERROR);
|
||||
|
||||
updateSize = request->contentLength();
|
||||
command = (filename.indexOf("spiffs") > -1) ? U_SPIFFS : U_FLASH;
|
||||
command = (filename.indexOf("website") > -1) ? U_SPIFFS : U_FLASH;
|
||||
|
||||
if (command == U_SPIFFS) {
|
||||
oledShowMessage("SPIFFS Update...");
|
||||
backupJsonConfigs();
|
||||
|
||||
if (!Update.begin(updateSize, command)) {
|
||||
// SPIFFS update with pure binary data
|
||||
if (!Update.begin((updateSize - 4), command)) { // Exclude header size
|
||||
restoreJsonConfigs();
|
||||
String errorMsg = String("Update begin failed: ") + Update.errorString();
|
||||
request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}");
|
||||
// Stelle Debug-Level wieder her
|
||||
esp_log_level_set("*", ESP_LOG_INFO);
|
||||
return;
|
||||
}
|
||||
|
||||
// Skip initial header completely for SPIFFS update
|
||||
if (index == 0 && len >= 4) {
|
||||
data += 4;
|
||||
len -= 4;
|
||||
updateSize -= 4;
|
||||
}
|
||||
} else {
|
||||
oledShowMessage("Firmware Update...");
|
||||
if (!Update.begin(updateSize, command)) {
|
||||
String errorMsg = String("Update begin failed: ") + Update.errorString();
|
||||
request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}");
|
||||
// Stelle Debug-Level wieder her
|
||||
esp_log_level_set("*", ESP_LOG_INFO);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -453,12 +453,8 @@ void setupWebserver(AsyncWebServer &server) {
|
||||
}
|
||||
String errorMsg = String("Update end failed: ") + Update.errorString();
|
||||
request->send(400, "application/json", "{\"success\":false,\"message\":\"" + errorMsg + "\"}");
|
||||
// Stelle Debug-Level wieder her
|
||||
esp_log_level_set("*", ESP_LOG_INFO);
|
||||
return;
|
||||
}
|
||||
// Stelle Debug-Level wieder her
|
||||
esp_log_level_set("*", ESP_LOG_INFO);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user