Compare commits

...

2 commits

Author SHA1 Message Date
Christian Hesse
9f6ade4fe4 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.
2025-05-06 22:49:06 +02:00
Christian Hesse
5f60c2b01c global-config: add another visual hint 2025-05-06 19:45:48 +02:00
2 changed files with 19 additions and 22 deletions

View file

@ -272,7 +272,9 @@
};
# load custom settings from overlay and snippets
# Warning: Do *NOT* copy this code to overlay!
# /\ Warning: Do *NOT*
# /\7\ copy this code
# /_()_\ to overlay!
:foreach Script in=([ /system/script/find where name="global-config-overlay" ], \
[ /system/script/find where name~"^global-config-overlay.d/" ]) do={
:do {

View file

@ -1126,6 +1126,8 @@
:global CommitId;
:global CommitInfo;
:global ExpectedConfigVersion;
:global GlobalConfigReady;
:global GlobalFunctionsReady;
:global Identity;
:global IDonate;
:global NoNewsAndChangesNotification;
@ -1159,8 +1161,7 @@
:local CommitIdBefore $CommitId;
:local ExpectedConfigVersionBefore $ExpectedConfigVersion;
:local ReloadGlobalFunctions false;
:local ReloadGlobalConfig false;
:local ReloadGlobal false;
:local DeviceMode [ /system/device-mode/get ];
:local CheckSums ({});
@ -1269,31 +1270,25 @@
$LogPrint info $0 ("Updating script: " . $ScriptVal->"name");
/system/script/set owner=($ScriptVal->"name") \
source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script;
:if ($ScriptVal->"name" = "global-config") do={
:set ReloadGlobalConfig true;
}
:if ($ScriptVal->"name" = "global-functions" || $ScriptVal->"name" ~ ("^mod/.")) do={
:set ReloadGlobalFunctions true;
:if ($ScriptVal->"name" = "global-config" || \
$ScriptVal->"name" = "global-functions" || \
$ScriptVal->"name" ~ ("^mod/.")) do={
:set ReloadGlobal true;
}
} on-error={ }
}
:if ($ReloadGlobalFunctions = true) do={
$LogPrint info $0 ("Reloading global functions.");
:do {
/system/script/run global-functions;
} on-error={
$LogPrint error $0 ("Reloading global functions failed!");
}
}
:if ($ReloadGlobal = true) do={
$LogPrint info $0 ("Reloading global configuration and functions.");
:set GlobalConfigReady false;
:set GlobalFunctionsReady false;
:delay 1s;
:if ($ReloadGlobalConfig = true) do={
$LogPrint info $0 ("Reloading global configuration.");
:do {
:onerror Err {
/system/script/run global-config;
} on-error={
$LogPrint error $0 ("Reloading global configuration failed!" . \
" Syntax error or missing overlay?");
/system/script/run global-functions;
} do={
$LogPrint error $0 ("Reloading global configuration and functions failed! " . $Err);
}
}