This commit is contained in:
@@ -384,7 +384,21 @@ static void ota_check_task(void *arg)
|
||||
if (aname && aname->valuestring && aurl && aurl->valuestring) {
|
||||
if (strstr(aname->valuestring, ".bin") != NULL) {
|
||||
const char *url_str = aurl->valuestring;
|
||||
strncpy(s_release.download_url, url_str, sizeof(s_release.download_url) - 1);
|
||||
const char *path = strstr(url_str, "/rasmus/MTGcompanion/releases/download/");
|
||||
if (path) {
|
||||
snprintf(s_release.download_url, sizeof(s_release.download_url),
|
||||
"https://git.rasmusbendtsen.dk%s", path);
|
||||
} else if (strncmp(url_str, "http://", 7) == 0) {
|
||||
const char *p = strchr(url_str + 7, '/');
|
||||
if (p) {
|
||||
snprintf(s_release.download_url, sizeof(s_release.download_url),
|
||||
"https://git.rasmusbendtsen.dk%s", p);
|
||||
} else {
|
||||
strncpy(s_release.download_url, url_str, sizeof(s_release.download_url) - 1);
|
||||
}
|
||||
} else {
|
||||
strncpy(s_release.download_url, url_str, sizeof(s_release.download_url) - 1);
|
||||
}
|
||||
if (asize && asize->valuedouble > 0) {
|
||||
s_release.binary_size = (size_t)asize->valuedouble;
|
||||
}
|
||||
@@ -581,9 +595,14 @@ esp_err_t ota_manager_check_update_async(void)
|
||||
if (s_status == OTA_STATUS_CHECKING || s_status == OTA_STATUS_DOWNLOADING) {
|
||||
return ESP_ERR_INVALID_STATE;
|
||||
}
|
||||
set_state(OTA_STATUS_CHECKING, "Connecting to Gitea...");
|
||||
BaseType_t ret = xTaskCreatePinnedToCore(
|
||||
ota_check_task, "ota_check", 8192, NULL, 5, &s_ota_task_handle, 0);
|
||||
return (ret == pdPASS) ? ESP_OK : ESP_ERR_NO_MEM;
|
||||
if (ret != pdPASS) {
|
||||
set_state(OTA_STATUS_FAILED, "Out of memory");
|
||||
return ESP_ERR_NO_MEM;
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
esp_err_t ota_manager_start_update_async(void)
|
||||
@@ -594,7 +613,12 @@ esp_err_t ota_manager_start_update_async(void)
|
||||
if (s_release.download_url[0] == '\0') {
|
||||
return ESP_ERR_NOT_FOUND;
|
||||
}
|
||||
set_state(OTA_STATUS_DOWNLOADING, "Starting download...");
|
||||
BaseType_t ret = xTaskCreatePinnedToCore(
|
||||
ota_download_task, "ota_update", 8192, NULL, 5, &s_ota_task_handle, 0);
|
||||
return (ret == pdPASS) ? ESP_OK : ESP_ERR_NO_MEM;
|
||||
if (ret != pdPASS) {
|
||||
set_state(OTA_STATUS_FAILED, "Out of memory");
|
||||
return ESP_ERR_NO_MEM;
|
||||
}
|
||||
return ESP_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user