diff options
author | Christian Hesse <mail@eworm.de> | 2018-12-27 01:51:43 +0100 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2018-12-27 02:19:27 +0100 |
commit | ecc475af3ef218ecb36d63b2707816fbde8a8c1e (patch) | |
tree | 28a2bb0445dae0877db542d787ee1433d68cb2c4 /capsman-download-packages | |
parent | ee5eefefc3d7b256727581674f55f7d23e213a3f (diff) |
add script 'capsman-download-packages'
Diffstat (limited to 'capsman-download-packages')
-rw-r--r-- | capsman-download-packages | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/capsman-download-packages b/capsman-download-packages new file mode 100644 index 0000000..aa14049 --- /dev/null +++ b/capsman-download-packages @@ -0,0 +1,34 @@ +#!rsc +# RouterOS script: capsman-download-packages +# Copyright (c) 2018 Christian Hesse <mail@eworm.de> +# +# requires: dont-require-permissions=yes +# +# download and cleanup packages for CAP installation from CAPsMAN + +:global CertificateAvailable; + +:local "package-path" [ / caps-man manager get package-path ]; +:local "installed-version" [ / system package update get installed-version ]; +:local updated false; + +:foreach package in=[ / file find where type=package ] do={ + :if ([ / file get $package package-version ] != $"installed-version") 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"; + } + :local "package-file" ($"package-name" . "-" . $"installed-version" . "-" . $"package-architecture" . ".npk"); + $CertificateAvailable "Let's Encrypt Authority X3" "letsencrypt"; + / tool fetch mode=https check-certificate=yes-without-crl \ + ("https://upgrade.mikrotik.com/routeros/" . $"installed-version" . "/" . $"package-file") \ + dst-path=($"package-path" . "/" . $"package-file"); + :set updated true; + / file remove $package; + } +} + +:if ($updated = true && [ / caps-man manager get enabled ] = true) do={ + / caps-man manager set enabled=yes; +} |