mirror of
https://github.com/eworm-de/routeros-scripts
synced 2024-05-14 08:04:19 +00:00
capsman-download-packages: use default set for legacy capsman...
... as well - now that 'wireless' package has been split from 'routeros' guessing kind of broke. It required several attempts and intermittent errors in logs to get things right.
This commit is contained in:
parent
5fdc8d9e65
commit
5aaa24b507
3 changed files with 18 additions and 57 deletions
|
@ -53,30 +53,15 @@ $WaitFullyConnected;
|
|||
}
|
||||
}
|
||||
|
||||
:if ([ :len [ /system/logging/find where topics~"error" !(topics~"!error") \
|
||||
!(topics~"!caps") action=memory !disabled !invalid ] ] < 1) do={
|
||||
$LogPrintExit2 warning $0 ("Looks like error messages for 'caps' are not sent to memory. " . \
|
||||
"Probably can not download packages automatically.") false;
|
||||
} else={
|
||||
: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 ([ :len [ /file/find where type=package name~("^" . $PackagePath) ] ] = 0) do={
|
||||
$LogPrintExit2 info $0 ("No packages available, downloading default set.") false;
|
||||
:foreach Arch in={ "arm"; "mipsbe" } do={
|
||||
:foreach Package in={ "routeros"; "wireless" } do={
|
||||
:if ([ $DownloadPackage $Package $InstalledVersion $Arch $PackagePath ] = true) do={
|
||||
:set Updated true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:if ($Updated = true) do={
|
||||
|
|
|
@ -56,38 +56,15 @@ $WaitFullyConnected;
|
|||
}
|
||||
}
|
||||
|
||||
# NOT /interface/wifi/ #
|
||||
# NOT /interface/wifiwave2/ #
|
||||
:if ([ :len [ /system/logging/find where topics~"error" !(topics~"!error") \
|
||||
!(topics~"!caps") action=memory !disabled !invalid ] ] < 1) do={
|
||||
$LogPrintExit2 warning $0 ("Looks like error messages for 'caps' are not sent to memory. " . \
|
||||
"Probably can not download packages automatically.") false;
|
||||
} else={
|
||||
: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;
|
||||
}
|
||||
}
|
||||
# NOT /interface/wifiwave2/ #
|
||||
# NOT /interface/wifi/ #
|
||||
# NOT /caps-man/ #
|
||||
:if ([ :len [ /file/find where type=package name~("^" . $PackagePath) ] ] = 0) do={
|
||||
$LogPrintExit2 info $0 ("No packages available, downloading default set.") false;
|
||||
# NOT /interface/wifi/ #
|
||||
# NOT /interface/wifiwave2/ #
|
||||
:foreach Arch in={ "arm"; "mipsbe" } do={
|
||||
:foreach Package in={ "routeros"; "wireless" } do={
|
||||
# NOT /interface/wifi/ #
|
||||
# NOT /interface/wifiwave2/ #
|
||||
# NOT /caps-man/ #
|
||||
:foreach Arch in={ "arm"; "arm64" } do={
|
||||
# NOT /interface/wifi/ #
|
||||
:foreach Package in={ "routeros"; "wifiwave2" } do={
|
||||
|
@ -95,13 +72,13 @@ $WaitFullyConnected;
|
|||
# NOT /interface/wifiwave2/ #
|
||||
:foreach Package in={ "routeros"; "wifi-qcom"; "wifi-qcom-ac" } do={
|
||||
# NOT /interface/wifiwave2/ #
|
||||
# NOT /caps-man/ #
|
||||
:if ([ $DownloadPackage $Package $InstalledVersion $Arch $PackagePath ] = true) do={
|
||||
:set Updated true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
# NOT /caps-man/ #
|
||||
|
||||
:if ($Updated = true) do={
|
||||
:local Script ([ /system/script/find where source~"\n# provides: capsman-rolling-upgrade\n" ]->0);
|
||||
|
|
|
@ -55,12 +55,11 @@ For legacy CAPsMAN:
|
|||
Packages available in local storage in older version are downloaded
|
||||
unconditionally.
|
||||
|
||||
If no packages are found the script tries to download missing packages for
|
||||
legacy CAPsMAN by guessing from system log. For `wifi` and `wifiwave2` a
|
||||
default set of packages is downloaded.
|
||||
If no packages are found the script downloads a default set of packages:
|
||||
|
||||
* `wifi`: `routeros`, `wifi-qcom` and `wifi-qcom-ac` for *arm* and *arm64*
|
||||
* `wifiwave2`: `routeros` and `wifiwave2` for *arm* and *arm64*
|
||||
* legacy CAPsMAN: `routeros` and `wireless` for *arm* and *mipsbe*
|
||||
|
||||
> ℹ️ **Info**: If you have packages in the directory and things go wrong for
|
||||
> what ever unknown reason: Remove **all** packages and start over.
|
||||
|
|
Loading…
Reference in a new issue