#!rsc # RouterOS script: capsman-download-packages # Copyright (c) 2018 Christian Hesse <mail@eworm.de> # Michael Gisbers <michael@gisbers.de> # # requires: dont-require-permissions=yes # # download and cleanup packages for CAP installation from CAPsMAN :global DownloadPackage; :local "package-path" [ / caps-man manager get package-path ]; :if ([ :pick $"package-path" 0 ] = "/") do={ :set "package-path" [ :pick $"package-path" 1 [ :len $"package-path" ] ]; } :local "installed-version" [ / system package update get installed-version ]; :local updated false; :foreach package in=[ / file find where type=package \ package-version!=$"installed-version" name~("^" . $"package-path") ] do={ :local "package-name" [ / file get $package package-name ]; :local "package-architecture" [ / file get $package package-architecture ]; :if ($"package-architecture" = "mips") do={ :set "package-architecture" "mipsbe"; } :if ($"package-name" = "wireless@") do={ :set "package-name" "wireless"; } :if ([ $DownloadPackage $"package-name" $"installed-version" $"package-architecture" $"package-path" ] = true) do={ :set updated true; / file remove $package; } } :if ($updated = true) do={ / caps-man remote-cap remove [ find where version!=$"installed-version" ]; }