diff --git a/global-functions.rsc b/global-functions.rsc index cd18cd6f..83a69335 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1377,20 +1377,20 @@ :continue; } - :local RequirePolicy ([ $ParseKeyValueStore [ $Grep $SourceNew ("\23 requires policy, ") ] ]->"policy"); - :if ([ :len $RequirePolicy ] > 0) do={ - :set ($ScriptVal->"policy") [ :toarray delimiter=";" $RequirePolicy ]; - $LogPrintOnce debug $0 ("New policy for script '" . $ScriptVal->"name" . "': " . $RequirePolicy); - } - $LogPrint info $0 ("Updating script: " . $ScriptVal->"name"); - /system/script/set owner=($ScriptVal->"name") policy=($ScriptVal->"policy") \ + /system/script/set owner=($ScriptVal->"name") \ source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script; :if ($ScriptVal->"name" = "global-config" || \ $ScriptVal->"name" = "global-functions" || \ $ScriptVal->"name" ~ ("^(global-functions\\.d|mod)/.")) do={ :set ReloadGlobal true; } + + :local RequirePolicy ([ $ParseKeyValueStore [ $Grep $SourceNew ("\23 requires policy, ") ] ]->"policy"); + :if ([ :len $RequirePolicy ] > 0 && $RequirePolicy != [ :tostr ($ScriptVal->"policy") ]) do={ + $LogPrintOnce info $0 ("Updating policy for script: " . $ScriptVal->"name"); + /system/script/set policy=[ :toarray delimiter=";" $RequirePolicy ] $Script; + } } :if ($ReloadGlobal = true) do={