diff options
author | Christian Hesse <mail@eworm.de> | 2022-03-22 22:33:46 +0100 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2022-03-25 11:24:36 +0100 |
commit | d21cd2271f0032984d23e1c5b6cfe8f2ade59363 (patch) | |
tree | 6e1dd7e647b6f5a13b9e1bef0e99c19054f9f5b7 /capsman-download-packages | |
parent | 0695c9931824bd9f1a1b858cce2e06934738d285 (diff) |
capsman-download-packages: get info from log
Relying on older packages in local storage may be problematic due to
size constraints. Let's check the log for required packages.
(cherry picked from commit c4a5f8787a57836bb3e8463cdda6cab6043b0169)
Diffstat (limited to 'capsman-download-packages')
-rw-r--r-- | capsman-download-packages | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/capsman-download-packages b/capsman-download-packages index 333f01b..64b6304 100644 --- a/capsman-download-packages +++ b/capsman-download-packages @@ -53,6 +53,25 @@ $WaitFullyConnected; } } +:if ($Updated = false && [ / system resource get uptime ] < 2m) do={ + $LogPrintExit2 info $0 ("No packages downloaded, yet. Delaying for logs.") false; + :delay 2m; +} + +:foreach Log in=[ / log find where topics=({"caps", "error"}) \ + message~("upgrade status: failed, failed to download file '.*-" . $InstalledVersion . "-.*\\.npk', no such file") ] do={ + :local Message [ / log get $Log message ]; + :local Package [ :pick $Message \ + ([ :find $Message "'" ] + 1) \ + [ :find $Message ("-" . $InstalledVersion . "-") ] ]; + :local Arch [ :pick $Message \ + ([ :find $Message ("-" . $InstalledVersion . "-") ] + 2 + [ :len $InstalledVersion ]) \ + [ :find $Message ".npk" ] ]; + :if ([ $DownloadPackage $Package $InstalledVersion $Arch $PackagePath ] = true) do={ + :set Updated true; + } +} + :if ($Updated = true) do={ :if ([ :len [ / system script find where name="capsman-rolling-upgrade" ] ] > 0) do={ / system script run capsman-rolling-upgrade; |