mirror of
https://git.eworm.de/cgit/routeros-scripts
synced 2025-07-09 17:44:29 +02: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,29 +53,14 @@ $WaitFullyConnected;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:if ([ :len [ /system/logging/find where topics~"error" !(topics~"!error") \
|
:if ([ :len [ /file/find where type=package name~("^" . $PackagePath) ] ] = 0) do={
|
||||||
!(topics~"!caps") action=memory !disabled !invalid ] ] < 1) do={
|
$LogPrintExit2 info $0 ("No packages available, downloading default set.") false;
|
||||||
$LogPrintExit2 warning $0 ("Looks like error messages for 'caps' are not sent to memory. " . \
|
:foreach Arch in={ "arm"; "mipsbe" } do={
|
||||||
"Probably can not download packages automatically.") false;
|
:foreach Package in={ "routeros"; "wireless" } do={
|
||||||
} else={
|
:if ([ $DownloadPackage $Package $InstalledVersion $Arch $PackagePath ] = true) do={
|
||||||
:if ($Updated = false && [ /system/resource/get uptime ] < 2m) do={
|
:set Updated true;
|
||||||
$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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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={
|
:if ([ :len [ /file/find where type=package name~("^" . $PackagePath) ] ] = 0) do={
|
||||||
$LogPrintExit2 info $0 ("No packages available, downloading default set.") false;
|
$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={
|
:foreach Arch in={ "arm"; "arm64" } do={
|
||||||
# NOT /interface/wifi/ #
|
# NOT /interface/wifi/ #
|
||||||
:foreach Package in={ "routeros"; "wifiwave2" } do={
|
:foreach Package in={ "routeros"; "wifiwave2" } do={
|
||||||
|
@ -95,13 +72,13 @@ $WaitFullyConnected;
|
||||||
# NOT /interface/wifiwave2/ #
|
# NOT /interface/wifiwave2/ #
|
||||||
:foreach Package in={ "routeros"; "wifi-qcom"; "wifi-qcom-ac" } do={
|
:foreach Package in={ "routeros"; "wifi-qcom"; "wifi-qcom-ac" } do={
|
||||||
# NOT /interface/wifiwave2/ #
|
# NOT /interface/wifiwave2/ #
|
||||||
|
# NOT /caps-man/ #
|
||||||
:if ([ $DownloadPackage $Package $InstalledVersion $Arch $PackagePath ] = true) do={
|
:if ([ $DownloadPackage $Package $InstalledVersion $Arch $PackagePath ] = true) do={
|
||||||
:set Updated true;
|
:set Updated true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# NOT /caps-man/ #
|
|
||||||
|
|
||||||
:if ($Updated = true) do={
|
:if ($Updated = true) do={
|
||||||
:local Script ([ /system/script/find where source~"\n# provides: capsman-rolling-upgrade\n" ]->0);
|
: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
|
Packages available in local storage in older version are downloaded
|
||||||
unconditionally.
|
unconditionally.
|
||||||
|
|
||||||
If no packages are found the script tries to download missing packages for
|
If no packages are found the script downloads a default set of packages:
|
||||||
legacy CAPsMAN by guessing from system log. For `wifi` and `wifiwave2` a
|
|
||||||
default set of packages is downloaded.
|
|
||||||
|
|
||||||
* `wifi`: `routeros`, `wifi-qcom` and `wifi-qcom-ac` for *arm* and *arm64*
|
* `wifi`: `routeros`, `wifi-qcom` and `wifi-qcom-ac` for *arm* and *arm64*
|
||||||
* `wifiwave2`: `routeros` and `wifiwave2` 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
|
> ℹ️ **Info**: If you have packages in the directory and things go wrong for
|
||||||
> what ever unknown reason: Remove **all** packages and start over.
|
> what ever unknown reason: Remove **all** packages and start over.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue