mirror of
https://git.eworm.de/cgit/routeros-scripts
synced 2025-07-20 19:04:37 +02:00
global-functions: $ScriptInstallUpdate: set config and functions not ready...
... before reload. This should fix some corner cases where scripts ran with broken configuration or functions. Also do reload both - configuration and functions - to simplify the function.
This commit is contained in:
parent
661aad522b
commit
f095b581e7
1 changed files with 16 additions and 21 deletions
|
@ -1126,6 +1126,8 @@
|
||||||
:global CommitId;
|
:global CommitId;
|
||||||
:global CommitInfo;
|
:global CommitInfo;
|
||||||
:global ExpectedConfigVersion;
|
:global ExpectedConfigVersion;
|
||||||
|
:global GlobalConfigReady;
|
||||||
|
:global GlobalFunctionsReady;
|
||||||
:global Identity;
|
:global Identity;
|
||||||
:global IDonate;
|
:global IDonate;
|
||||||
:global NoNewsAndChangesNotification;
|
:global NoNewsAndChangesNotification;
|
||||||
|
@ -1159,8 +1161,7 @@
|
||||||
|
|
||||||
:local CommitIdBefore $CommitId;
|
:local CommitIdBefore $CommitId;
|
||||||
:local ExpectedConfigVersionBefore $ExpectedConfigVersion;
|
:local ExpectedConfigVersionBefore $ExpectedConfigVersion;
|
||||||
:local ReloadGlobalFunctions false;
|
:local ReloadGlobal false;
|
||||||
:local ReloadGlobalConfig false;
|
|
||||||
:local DeviceMode [ /system/device-mode/get ];
|
:local DeviceMode [ /system/device-mode/get ];
|
||||||
|
|
||||||
:local CheckSums ({});
|
:local CheckSums ({});
|
||||||
|
@ -1269,31 +1270,25 @@
|
||||||
$LogPrint info $0 ("Updating script: " . $ScriptVal->"name");
|
$LogPrint info $0 ("Updating script: " . $ScriptVal->"name");
|
||||||
/system/script/set owner=($ScriptVal->"name") \
|
/system/script/set owner=($ScriptVal->"name") \
|
||||||
source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script;
|
source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script;
|
||||||
:if ($ScriptVal->"name" = "global-config") do={
|
:if ($ScriptVal->"name" = "global-config" || \
|
||||||
:set ReloadGlobalConfig true;
|
$ScriptVal->"name" = "global-functions" || \
|
||||||
}
|
$ScriptVal->"name" ~ ("^mod/.")) do={
|
||||||
:if ($ScriptVal->"name" = "global-functions" || $ScriptVal->"name" ~ ("^mod/.")) do={
|
:set ReloadGlobal true;
|
||||||
:set ReloadGlobalFunctions true;
|
|
||||||
}
|
}
|
||||||
} on-error={ }
|
} on-error={ }
|
||||||
}
|
}
|
||||||
|
|
||||||
:if ($ReloadGlobalFunctions = true) do={
|
:if ($ReloadGlobal = true) do={
|
||||||
$LogPrint info $0 ("Reloading global functions.");
|
$LogPrint info $0 ("Reloading global configuration and functions.");
|
||||||
:do {
|
:set GlobalConfigReady false;
|
||||||
/system/script/run global-functions;
|
:set GlobalFunctionsReady false;
|
||||||
} on-error={
|
:delay 1s;
|
||||||
$LogPrint error $0 ("Reloading global functions failed!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
:if ($ReloadGlobalConfig = true) do={
|
:onerror Err {
|
||||||
$LogPrint info $0 ("Reloading global configuration.");
|
|
||||||
:do {
|
|
||||||
/system/script/run global-config;
|
/system/script/run global-config;
|
||||||
} on-error={
|
/system/script/run global-functions;
|
||||||
$LogPrint error $0 ("Reloading global configuration failed!" . \
|
} do={
|
||||||
" Syntax error or missing overlay?");
|
$LogPrint error $0 ("Reloading global configuration and functions failed! " . $Err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue