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

Uninstall addon, install addon from url

This commit is contained in:
Jan Schneider
2018-01-27 23:53:12 +01:00
parent 4c410fc1b3
commit ed0bd9033c
4 changed files with 175 additions and 25 deletions

View File

@@ -67,6 +67,9 @@ proc ::rmupdate::i18n {str} {
if {$str == "System will reboot now."} { return "Das System wird jetzt neu gestartet." }
if {$str == "Latest firmware version: %s"} { return "Aktuellste Firmware-Version: %s" }
if {$str == "Current firmware version: %s"} { return "Installierte Firmware-Version: %s" }
if {$str == "Download url missing."} { return "Download-URL fehlt." }
if {$str == "Addon %s successfully installed."} { return "Addon %s erfolgreich installiert." }
if {$str == "Addon %s successfully uninstalled."} { return "Addon %s erfolgreich deinstalliert." }
}
return $str
}
@@ -924,7 +927,7 @@ proc ::rmupdate::get_addon_info {{fetch_available_version 0} {fetch_download_url
}
}
proc ::rmupdate::install_addon {addon_id} {
proc ::rmupdate::uninstall_addon {addon_id} {
variable rc_dir
if {[get_running_installation] != ""} {
@@ -933,12 +936,43 @@ proc ::rmupdate::install_addon {addon_id} {
set_running_installation "Addon ${addon_id}"
array set addon [get_addon_info 1 1 0 $addon_id]
set download_url $addon(${addon_id}::download_url)
write_log 3 "Uninstalling addon"
if { [catch {
exec "${rc_dir}/${addon_id}" uninstall
} errormsg] } {
write_log 2 "${rc_dir}/${addon_id} uninstall failed: ${errormsg}"
}
write_log 3 "Addon ${addon_id} successfully uninstalled"
set_running_installation ""
return [format [i18n "Addon %s successfully uninstalled."] $addon_id]
}
proc ::rmupdate::install_addon {{addon_id ""} {download_url ""}} {
variable rc_dir
if {[get_running_installation] != ""} {
error [i18n "Another install process is running."]
}
if {$addon_id != ""} {
array set addon [get_addon_info 1 1 0 $addon_id]
set download_url $addon(${addon_id}::download_url)
}
if {$download_url == ""} {
error [i18n "Download url missing."]
}
if {$addon_id == ""} {
set addon_id "unknown"
}
set_running_installation "Addon ${addon_id}"
write_log 3 "Downloading addon from ${download_url}."
regexp {/([^/]+)$} $download_url match archive_file
set archive_file "/tmp/${archive_file}"
set archive_file "/tmp/${addon_id}.tar.gz"
if {[file exists $archive_file]} {
file delete $archive_file
}
@@ -957,7 +991,11 @@ proc ::rmupdate::install_addon {addon_id} {
write_log 3 "Running update_script"
file attributes update_script -permissions 0755
exec ./update_script noreboot
if { [catch {
exec ./update_script noreboot
} errormsg] } {
write_log 2 "Addon update_script failed: ${errormsg}"
}
cd /tmp
@@ -975,7 +1013,7 @@ proc ::rmupdate::install_addon {addon_id} {
set_running_installation ""
return "Addon ${addon_id} successfully installed"
return [format [i18n "Addon %s successfully installed."] $addon_id]
}
#puts [rmupdate::get_latest_firmware_version]