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