1
0
mirror of https://github.com/j-a-n/raspberrymatic-addon-rmupdate.git synced 2023-10-10 11:37:40 +00:00

Install firmware from url

This commit is contained in:
Jan Schneider
2018-03-21 00:14:13 +01:00
parent 9a9457ee95
commit 98c23ccba0
3 changed files with 84 additions and 54 deletions

View File

@@ -993,17 +993,22 @@ proc ::rmupdate::get_latest_firmware_version {} {
return [lindex $versions 0]
}
proc ::rmupdate::download_firmware {version} {
proc ::rmupdate::download_firmware {{download_url ""} {version ""}} {
variable img_dir
variable install_log
set image_file "${img_dir}/RaspberryMatic-${version}.img"
set download_url ""
foreach e [get_available_firmware_downloads] {
set v [get_version_from_filename $e]
if {$v == $version} {
set download_url $e
break
if {$version == ""} {
set image_file "${img_dir}/RaspberryMatic-${version}.img"
} else {
set image_file "${img_dir}/RaspberryMatic-unknown.img"
}
if {$download_url == ""} {
foreach e [get_available_firmware_downloads] {
set v [get_version_from_filename $e]
if {$v == $version} {
set download_url $e
break
}
}
}
if {$download_url == ""} {
@@ -1038,6 +1043,9 @@ proc ::rmupdate::download_firmware {version} {
exec /usr/bin/unzip "${archive_file}" "${img_file}" -o -d "${img_dir}" 2>/dev/null
set img_file "${img_dir}/${img_file}"
#puts "${img_file} ${image_file}"
if {$version == ""} {
set image_file $img_file
}
if {$img_file != $image_file} {
file rename $img_file $image_file
}
@@ -1174,9 +1182,11 @@ proc ::rmupdate::delete_firmware_image {version} {
catch { eval {file delete [glob "${img_dir}/*${version}*.zip"]} }
}
proc ::rmupdate::install_firmware_version {version lang {reboot 1} {keep_download 0} {dryrun 0}} {
proc ::rmupdate::install_firmware {{download_url ""} {version ""} {lang ""} {reboot 1} {keep_download 0} {dryrun 0}} {
variable language
set language $lang
if {$lang != ""} {
set language $lang
}
if {[get_running_installation] != ""} {
error [i18n "Another install process is running."]
}
@@ -1184,19 +1194,23 @@ proc ::rmupdate::install_firmware_version {version lang {reboot 1} {keep_downloa
error [i18n "System not upgradeable."]
}
set_running_installation "Firmware ${version}"
set firmware_image ""
foreach e [get_available_firmware_images] {
set v [get_version_from_filename $e]
if {$v == $version} {
set firmware_image $e
break
if {$version == ""} {
set_running_installation "Firmware unknown"
set keep_download 0
} else {
set_running_installation "Firmware ${version}"
foreach e [get_available_firmware_images] {
set v [get_version_from_filename $e]
if {$v == $version} {
set firmware_image $e
break
}
}
}
if {$firmware_image == ""} {
set firmware_image [download_firmware $version]
set firmware_image [download_firmware $download_url $version]
}
get_system_device
@@ -1221,8 +1235,9 @@ proc ::rmupdate::install_firmware_version {version lang {reboot 1} {keep_downloa
}
proc ::rmupdate::install_latest_version {{reboot 1} {dryrun 0}} {
variable language
set latest_version [get_latest_firmware_version]
return install_firmware_version $latest_version $reboot $dryrun
return install_firmware "" $latest_version $language $reboot $dryrun
}
proc ::rmupdate::is_firmware_up_to_date {} {