aboutsummaryrefslogtreecommitdiffstats
path: root/capsman-download-packages
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2018-12-27 01:51:43 +0100
committerGravatar Christian Hesse <mail@eworm.de>2018-12-27 02:19:27 +0100
commitecc475af3ef218ecb36d63b2707816fbde8a8c1e (patch)
tree28a2bb0445dae0877db542d787ee1433d68cb2c4 /capsman-download-packages
parentee5eefefc3d7b256727581674f55f7d23e213a3f (diff)
add script 'capsman-download-packages'
Diffstat (limited to 'capsman-download-packages')
-rw-r--r--capsman-download-packages34
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;
+}