capsman-download-packages 1.25 KB
Newer Older
1 2
#!rsc
# RouterOS script: capsman-download-packages
Christian Hesse's avatar
Christian Hesse committed
3 4
# Copyright (c) 2018-2019 Christian Hesse <mail@eworm.de>
#                         Michael Gisbers <michael@gisbers.de>
5 6 7
#
# download and cleanup packages for CAP installation from CAPsMAN

8
:global DownloadPackage;
9
:global CleanFilePath;
10

11
:local PackagePath [ $CleanFilePath [ / caps-man manager get package-path ] ];
12 13
:local InstalledVersion [ / system package update get installed-version ];
:local Updated false;
14

15 16
:foreach Package in=[ / file find where type=package \
      package-version!=$InstalledVersion name~("^" . $PackagePath) ] do={
17 18 19
  :local File [ / file get $Package ];
  :if ($File->"package-architecture" = "mips") do={
    :set ($File->"package-architecture") "mipsbe";
20
  }
21 22
  :if ($File->"package-name" = "wireless@") do={
    :set ($File->"package-name") "wireless";
23
  }
24
  :if ([ $DownloadPackage ($File->"package-name") $InstalledVersion $File->"package-architecture" $PackagePath ] = true) do={
25 26
    :set Updated true;
    / file remove $Package;
27
  }
28 29
}

30 31 32 33 34
:if ($Updated = true) do={
  :if ([ / system script print count-only where name="capsman-rolling-upgrade" ] > 0) do={
    / system script run capsman-rolling-upgrade;
  } else={
    / caps-man remote-cap upgrade [ find where version!=$InstalledVersion ];
35
  }
36
}