]> Git [git.vados.ru] :: Repos - Mikrotiks/ros.vados.ru.git/commitdiff
Autocommit in repo: ros.vados.ru, generated by owner: root, in 08:15:02 04.05.2026.
authorvados-dev <192440777+vados-dev@users.noreply.github.com>
Mon, 4 May 2026 05:15:03 +0000 (08:15 +0300)
committervados-dev <192440777+vados-dev@users.noreply.github.com>
Mon, 4 May 2026 05:15:03 +0000 (08:15 +0300)
html/AM-GlobalFunc.rsc
html/AM-setup.rsc

index c515ef1e03df87c24dce9df6d6940199be39e2fd..d584c174213aa608de329c6ddc88b37851f3c6e3 100644 (file)
@@ -17,9 +17,9 @@
 :global GlobalFuncReady false;
 
 # Git commit id & info, expected configuration version
-:global CommitId "main/526/05798b56";
+:global CommitId "main/527/efcec722";
 :global CommitTAG "unknown";
-:global CommitInfo "Autocommit in repo: ros.vados.ru, generated by owner: root, in 08:05:03 04.05.2026.";
+:global CommitInfo "Autocommit in repo: ros.vados.ru, generated by owner: root, in 08:15:02 04.05.2026.";
 
 # The variables are received right here.
 :global GlobalConfVersion 138;
index d9c5a0a4a24c46ca23f34c1a7a564f5fab87628d..88d31958f9335c2954c66ada2dda8b72f327490b 100644 (file)
-#!rsc by Vados
-# RouterOS script: AM-setup
-# Script comment: Script for setup routeros script system
-# Copyright (c) 2005-2026 Vados <vados@vados.ru>
-#
-#
-# requires RouterOS, version=7.19
-# requires device-mode, fetch
-#
-# :local ScriptName [ :jobname ];
-# Additional commands:
-#
-# For scripts:
-#:global NewScript "script_name"; 
-#:global GlobalScriptsUrl "https://ros.vados.ru/";
-#/system/script/add name=$NewScript owner=$NewScript source=([/tool/fetch check-certificate=yes-without-crl ($GlobalScriptsUrl . $ScriptAdd . ".rsc") output=user as-value ]->"data");
-#:global NewScript (a);
-#:global ScriptInstallUpdate; $ScriptInstallUpdate;
-#
-# For run from terminal:
-#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch check-certificate=yes-without-crl "https://ros.vados.ru/AM-setup.rsc" output=user as-value ]->"data");
-#
-
-:global ScriptUpdatesCRLF "LF";
-#:if ($ScriptUpdatesCRLF != false) do={
-#  :foreach Script in=[ /system/script/find where source~"^#!rsc by Vados" ] do={
-#    if ($ScriptUpdatesCRLF = true) do={
-#      /system/script/set source=[ :tocrlf [ get $Script source ] ] $Script;
-#    } else={
-#      /system/script/set source=[ :tolf [ get $Script source ] ] $Script;
-#    }
-#  }
-#}
-
-# /import verbose=no $ScriptName
-:global SetupScript [ :jobname ];
-:global RemoveMe;
-:global RunOnce;
-:global InitSetup true;
-:global tmpfs true;
-
-{
-  :local RmMe [:tobool $1];
-
-  :global GlobalScriptsUrl;
-  :global SetupScript;
-  :global RemoveMe;
-  :global InitSetup;
-  :global tmpfs;
-    
-  :local CertCommonName "Root YE";
-  :local CertFileName "Root-YE.pem";
-  :local CertFingerprint "e14ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666";
-
-  :if ($SetupScript = false) do={
-    :global SetupScript "AM-setup";
-  }
-  :if ($RemoveMe != false) do={
-    :set RemoveMe true;
-  }
-
-  :log warning ("\n\$GlobalScriptsUrl = " . $GlobalScriptsUrl);
-  
-  :local CertSettings [ /certificate/settings/get ];
-  :if (!((($CertSettings->"builtin-trust-anchors") = "trusted" || \
-          ($CertSettings->"builtin-trust-store") ~ "fetch" || \
-          ($CertSettings->"builtin-trust-store") = "all") && \
-         [ :len [ /certificate/builtin/find where common-name=$CertCommonName ] ] > 0)) do={
-    :put "Importing certificate...";
-    
-    /tool/fetch ($GlobalScriptsUrl . "certs/" . $CertFileName) dst-path=$CertFileName as-value;
-    :delay 1s;
-    /certificate/import file-name=$CertFileName passphrase="";
-    :if ([ :len [ /certificate/find where fingerprint=$CertFingerprint ] ] != 1) do={
-      :error "Something is wrong with your certificates!";
-    };
-    :delay 1s;
-  };
-
-:local MkTmpfs do={
-  :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];
-  :if ([ :len $TmpFs ] = 1) do={
-    :if ([ /disk/get $TmpFs disabled ] = true) do={
-      :log info ("The tmpfs is disabled, enabling.");
-      /disk/enable $TmpFs;
-    }
-    :return true;
-  }
-  :log info ("Try to removing directory 'tmpfs'.");
-  :do {
-    :retry {
-      /file/remove tmpfs;
-      :return true;
-    } delay=100ms max=10;
-  } on-error={ }
-#  $RmDir "tmpfs";
-  :onerror Err {
-    /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/get total-memory ] / 3);
-    :do {
-      :retry {
-        /file/get tmpfs;
-        :return true;
-      } delay=222ms max=10;
-      } on-error={ }
-    } do={
-      :log warning ("Creating disk of type tmpfs failed: " . $Err);
-      :return false;
-    }
-#    :return true;
-}
-:if ($tmpfs = true) do={
-  :put "Tmpfs variable is true. Checking for tmpfs/scripts directory...";
-  :if ([/file find name="tmpfs/scripts"] != "") do={
-    :log info ($0 . "Directory tmpfs/scripts exsist.");
-    :return $true;
-  } else={
-    :log warning ($0 . "Directory tmpfs/scripts does't exsist.");
-    :if ([ $MkTmpfs ] = false) do={
-      :log error ($0 . "Directory tmpfs is not created!");
-      :return false;
-    } else={
-      :onerror Err {
-        /file/add type="directory" name=/tmpfs/scripts;
-        :do {
-          :retry {
-            /file/get /tmpfs/scripts;
-            :return true;
-          } delay=100ms max=10;
-      } on-error={ }
-      } do={
-        :log warning ($0 . "Making directory 'scripts' failed: " . $Err);
-        :return false;
-      }
-#      :return true;
-#      [ /file/get $FileName ]
-    }
-#    :log error ($0 . "Directory tmpfs/scripts does not exsist. Remove global variable tmpfs!");
-#    :global tmpfs (a);
-#    return false;
-  }
-}
-  :put "Renaming AM-GlobalConfig, if exists...";
-  :local ConfOldName ("AM-GlobalConfig-" . [ /system/clock/get date ] . [ /system/clock/get time ] . ".rsc");
-  /system/script/set name=$ConfOldName [ find where name="AM-GlobalConfig" ];
-  :foreach Script in={ "AM-GlobalConfig"; "AM-GlobalFunc" } do={
-    :put "Installing $Script...";
-    /system/script/remove [ find where name=$Script ];
-    /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl url=($GlobalScriptsUrl . $Script . ".rsc")  output=user as-value ]->"data");
-    
-    /system/script run $Script;
-    :delay 2s;
-  };
-
-  :if ([ :len [ /certificate/find where fingerprint=$CertFingerprint ] ] > 0) do={
-    :put "Renaming certificate by its common-name...";
-    :global CertificateNameByCN;
-    $CertificateNameByCN $CertFingerprint;
-  };
-
-  :if ($RemoveMe = true) do={
-    :put "Add Scheduler for remove this script...";
-    :local OnEvent (":delay 30s;\n" . "/system/script/remove [ find where name=\"$SetupScript\" ];\n" . \
-    ":delay 2s;\n" . "/system/scheduler/remove [ find where name=\"_RemoveSetup\" ];\n" . \
-    ":delay 2s;\n" . ":global RemoveMe (a);\n");
-    :local Comment "_RemoveSetup tmp scheduler for remove setup script.";
-    /system/scheduler/add name="_RemoveSetup" comment=$Comment start-time=startup interval=30s on-event=$OnEvent;
-      :log warning ($0 . "\nI've done everything, and now I'm tired... I'm leaving.\nThere will be an error below, this is normal.");
-    }
-    :delay 1;
-    :put "Loading configuration and functions...";
-    :do {      
-      :global ScriptInstallUpdate; $ScriptInstallUpdate;
-      :put "Normal removing temporary global environment variables.";
-      :global SetupScript (a);
-      :global InitSetup (a);
-      :global RemoveMe (a);
-    } on-error={
-      :local ErrorMsg "Loading configuration and functions error!";
-      :log error ($0 . $ErrorMsg . :error);
-      :error $ErrorMsg;
-    }
-}
+#!rsc by Vados\r
+# RouterOS script: AM-setup\r
+# Script comment: Script for setup routeros script system\r
+# Copyright (c) 2005-2026 Vados <vados@vados.ru>\r
+#\r
+#\r
+# requires RouterOS, version=7.19\r
+# requires device-mode, fetch\r
+#\r
+# :local ScriptName [ :jobname ];\r
+# Additional commands:\r
+#\r
+# For scripts:\r
+#:global NewScript "script_name"; \r
+#:global GlobalScriptsUrl "https://ros.vados.ru/";\r
+#/system/script/add name=$NewScript owner=$NewScript source=([/tool/fetch check-certificate=yes-without-crl ($GlobalScriptsUrl . $ScriptAdd . ".rsc") output=user as-value ]->"data");\r
+#:global NewScript (a);\r
+#:global ScriptInstallUpdate; $ScriptInstallUpdate;\r
+#\r
+# For run from terminal:\r
+#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch check-certificate=yes-without-crl "https://ros.vados.ru/AM-setup.rsc" output=user as-value ]->"data");\r
+#\r
+\r
+:global ScriptUpdatesCRLF "LF";\r
+#:if ($ScriptUpdatesCRLF != false) do={\r
+#  :foreach Script in=[ /system/script/find where source~"^#!rsc by Vados" ] do={\r
+#    if ($ScriptUpdatesCRLF = true) do={\r
+#      /system/script/set source=[ :tocrlf [ get $Script source ] ] $Script;\r
+#    } else={\r
+#      /system/script/set source=[ :tolf [ get $Script source ] ] $Script;\r
+#    }\r
+#  }\r
+#}\r
+\r
+# /import verbose=no $ScriptName\r
+:global SetupScript [ :jobname ];\r
+:global RemoveMe;\r
+:global RunOnce;\r
+:global InitSetup true;\r
+:global tmpfs true;\r
+\r
+{\r
+  :local RmMe [:tobool $1];\r
+\r
+  :global GlobalScriptsUrl;\r
+  :global SetupScript;\r
+  :global RemoveMe;\r
+  :global InitSetup;\r
+  :global tmpfs;\r
+    \r
+  :local CertCommonName "Root YE";\r
+  :local CertFileName "Root-YE.pem";\r
+  :local CertFingerprint "e14ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666";\r
+\r
+  :if ($SetupScript = false) do={\r
+    :global SetupScript "AM-setup";\r
+  }\r
+  :if ($RemoveMe != false) do={\r
+    :set RemoveMe true;\r
+  }\r
+\r
+  :log warning ("\n\$GlobalScriptsUrl = " . $GlobalScriptsUrl);\r
+  \r
+  :local CertSettings [ /certificate/settings/get ];\r
+  :if (!((($CertSettings->"builtin-trust-anchors") = "trusted" || \\r
+          ($CertSettings->"builtin-trust-store") ~ "fetch" || \\r
+          ($CertSettings->"builtin-trust-store") = "all") && \\r
+         [ :len [ /certificate/builtin/find where common-name=$CertCommonName ] ] > 0)) do={\r
+    :put "Importing certificate...";\r
+    \r
+    /tool/fetch ($GlobalScriptsUrl . "certs/" . $CertFileName) dst-path=$CertFileName as-value;\r
+    :delay 1s;\r
+    /certificate/import file-name=$CertFileName passphrase="";\r
+    :if ([ :len [ /certificate/find where fingerprint=$CertFingerprint ] ] != 1) do={\r
+      :error "Something is wrong with your certificates!";\r
+    };\r
+    :delay 1s;\r
+  };\r
+\r
+:local MkTmpfs do={\r
+  :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r
+  :if ([ :len $TmpFs ] = 1) do={\r
+    :if ([ /disk/get $TmpFs disabled ] = true) do={\r
+      :log info ("The tmpfs is disabled, enabling.");\r
+      /disk/enable $TmpFs;\r
+    }\r
+    :return true;\r
+  }\r
+  :log info ("Try to removing directory 'tmpfs'.");\r
+  :do {\r
+    :retry {\r
+      /file/remove tmpfs;\r
+      :return true;\r
+    } delay=100ms max=10;\r
+  } on-error={ }\r
+#  $RmDir "tmpfs";\r
+  :onerror Err {\r
+    /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/get total-memory ] / 3);\r
+    :do {\r
+      :retry {\r
+        /file/get tmpfs;\r
+        :return true;\r
+      } delay=222ms max=10;\r
+      } on-error={ }\r
+    } do={\r
+      :log warning ("Creating disk of type tmpfs failed: " . $Err);\r
+      :return false;\r
+    }\r
+#    :return true;\r
+}\r
+:if ($tmpfs = true) do={\r
+  :put "Tmpfs variable is true. Checking for tmpfs/scripts directory...";\r
+  :if ([/file find name="tmpfs/scripts"] != "") do={\r
+    :log info ($0 . "Directory tmpfs/scripts exsist.");\r
+    :return $true;\r
+  } else={\r
+    :log warning ($0 . "Directory tmpfs/scripts does't exsist.");\r
+    :if ([ $MkTmpfs ] = false) do={\r
+      :log error ($0 . "Directory tmpfs is not created!");\r
+      :return false;\r
+    } else={\r
+      :onerror Err {\r
+        /file/add type="directory" name=/tmpfs/scripts;\r
+        :do {\r
+          :retry {\r
+            /file/get /tmpfs/scripts;\r
+            :return true;\r
+          } delay=100ms max=10;\r
+      } on-error={ }\r
+      } do={\r
+        :log warning ($0 . "Making directory 'scripts' failed: " . $Err);\r
+        :return false;\r
+      }\r
+#      :return true;\r
+#      [ /file/get $FileName ]\r
+    }\r
+#    :log error ($0 . "Directory tmpfs/scripts does not exsist. Remove global variable tmpfs!");\r
+#    :global tmpfs (a);\r
+#    return false;\r
+  }\r
+}\r
+  :put "Renaming AM-GlobalConfig, if exists...";\r
+  :local ConfOldName ("AM-GlobalConfig-" . [ /system/clock/get date ] . [ /system/clock/get time ] . ".rsc");\r
+  /system/script/set name=$ConfOldName [ find where name="AM-GlobalConfig" ];\r
+  :foreach Script in={ "AM-GlobalConfig"; "AM-GlobalFunc" } do={\r
+    :put "Installing $Script...";\r
+    /system/script/remove [ find where name=$Script ];\r
+    /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl url=($GlobalScriptsUrl . $Script . ".rsc")  output=user as-value ]->"data");\r
+    \r
+    /system/script run $Script;\r
+    :delay 2s;\r
+  };\r
+\r
+  :if ([ :len [ /certificate/find where fingerprint=$CertFingerprint ] ] > 0) do={\r
+    :put "Renaming certificate by its common-name...";\r
+    :global CertificateNameByCN;\r
+    $CertificateNameByCN $CertFingerprint;\r
+  };\r
+\r
+  :if ($RemoveMe = true) do={\r
+    :put "Add Scheduler for remove this script...";\r
+    :local OnEvent (":delay 30s;\n" . "/system/script/remove [ find where name=\"$SetupScript\" ];\n" . \\r
+    ":delay 2s;\n" . "/system/scheduler/remove [ find where name=\"_RemoveSetup\" ];\n" . \\r
+    ":delay 2s;\n" . ":global RemoveMe (a);\n");\r
+    :local Comment "_RemoveSetup tmp scheduler for remove setup script.";\r
+    /system/scheduler/add name="_RemoveSetup" comment=$Comment start-time=startup interval=30s on-event=$OnEvent;\r
+      :log warning ($0 . "\nI've done everything, and now I'm tired... I'm leaving.\nThere will be an error below, this is normal.");\r
+    }\r
+    :delay 1;\r
+    :put "Loading configuration and functions...";\r
+    :do {      \r
+      :global ScriptInstallUpdate; $ScriptInstallUpdate;\r
+      :put "Normal removing temporary global environment variables.";\r
+      :global SetupScript (a);\r
+      :global InitSetup (a);\r
+      :global RemoveMe (a);\r
+    } on-error={\r
+      :local ErrorMsg "Loading configuration and functions error!";\r
+      :log error ($0 . $ErrorMsg . :error);\r
+      :error $ErrorMsg;\r
+    }\r
+}\r