diff options
Diffstat (limited to 'script-updates')
-rw-r--r-- | script-updates | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/script-updates b/script-updates index 5ed0f5b..971f2e4 100644 --- a/script-updates +++ b/script-updates @@ -6,80 +6,80 @@ :global GlobalConfigVersion; :global ExpectedConfigVersion; -:global "identity"; -:global "script-updates-fetch"; -:global "script-updates-baseurl"; -:global "script-updates-urlsuffix"; -:global "script-updates-ignore"; +:global Identity; +:global ScriptUpdatesFetch; +:global ScriptUpdatesBaseUrl; +:global ScriptUpdatesUrlSuffix; +:global ScriptUpdatesIgnore; :global SendNotification; -:foreach script in=[ / system script find ] do={ - :local ignore 0; - :local scriptname [ / system script get $script name ]; - :local scriptpolicy [ / system script get $script policy ]; - :local scriptfile [ / file find where name=("script-updates/" . $scriptname) ]; - :local sourcenew; - :if ([ :len $scriptfile ] > 0) do={ - :set sourcenew [ / file get $scriptfile content ]; - / file remove $scriptfile; +:foreach Script in=[ / system script find ] do={ + :local Ignore 0; + :local ScriptName [ / system script get $Script name ]; + :local ScriptPolicy [ / system script get $Script policy ]; + :local ScriptFile [ / file find where name=("script-updates/" . $ScriptName) ]; + :local SourceNew; + :if ([ :len $ScriptFile ] > 0) do={ + :set SourceNew [ / file get $ScriptFile content ]; + / file remove $ScriptFile; } - :foreach scheduler in=[ / system scheduler find where on-event=$scriptname ] do={ - :local schedulername [ / system scheduler get $scheduler name ]; - :local schedulerpolicy [ / system scheduler get $scheduler policy ]; - :if ($scriptpolicy != schedulerpolicy) do={ - :log warning ("Policies differ for script " . $scriptname . \ - " and its scheduler " . $schedulername . "!"); + :foreach Scheduler in=[ / system scheduler find where on-event=$ScriptName ] do={ + :local SchedulerName [ / system scheduler get $Scheduler name ]; + :local SchedulerPolicy [ / system scheduler get $Scheduler policy ]; + :if ($ScriptPolicy != $SchedulerPolicy) do={ + :log warning ("Policies differ for script " . $ScriptName . \ + " and its scheduler " . $SchedulerName . "!"); } } - :if ([ :len $sourcenew ] = 0 && $"script-updates-fetch" = true) do={ - :foreach "ignore-loop" in=$"script-updates-ignore" do={ - :if ($"ignore-loop" = $scriptname) do={ :set ignore 1; } + :if ([ :len $SourceNew ] = 0 && $ScriptUpdatesFetch = true) do={ + :foreach IgnoreLoop in=$ScriptUpdatesIgnore do={ + :if ($IgnoreLoop = $ScriptName) do={ :set Ignore 1; } } - :if ($ignore = 0) do={ - :log debug ("Fetching script from url: " . $scriptname); + :if ($Ignore = 0) do={ + :log debug ("Fetching script from url: " . $ScriptName); :do { - :local result [ / tool fetch check-certificate=yes-without-crl \ - ($"script-updates-baseurl" . $scriptname . $"script-updates-urlsuffix") \ + :local Result [ / tool fetch check-certificate=yes-without-crl \ + ($ScriptUpdatesBaseUrl . $ScriptName . $ScriptUpdatesUrlSuffix) \ output=user as-value ]; - :if ($result->"status" = "finished") do={ - :set sourcenew ($result->"data"); + :if ($Result->"status" = "finished") do={ + :set SourceNew ($Result->"data"); } } on-error={ - :log info ("Failed fetching " . $scriptname); + :log info ("Failed fetching " . $ScriptName); } } } - :if ([ :len $sourcenew ] > 0) do={ - :if ([ :pick $sourcenew 0 5 ] = "#!rsc") do={ - :local sourcecurrent [ / system script get $script source ]; - :if ($sourcenew != $sourcecurrent) do={ - :local "dont-require-permissions" \ - ($sourcenew~"\n# requires: dont-require-permissions=yes\n"); - :log info ("Updating script: " . $scriptname); - / system script set owner=$scriptname source=$sourcenew \ - dont-require-permissions=$"dont-require-permissions" $script; - :if ($scriptname = "global-functions") do={ + :if ([ :len $SourceNew ] > 0) do={ + :if ([ :pick $SourceNew 0 5 ] = "#!rsc") do={ + :local SourceCurrent [ / system script get $Script source ]; + :if ($SourceNew != $SourceCurrent) do={ + :local DontRequirePermissions \ + ($SourceNew~"\n# requires: dont-require-permissions=yes\n"); + :log info ("Updating script: " . $ScriptName); + / system script set owner=$ScriptName source=$SourceNew \ + dont-require-permissions=$DontRequirePermissions $Script; + :if ($ScriptName = "global-functions") do={ / system script run global-functions; } } else={ - :log debug ("Script " . $scriptname . " did not change"); + :log debug ("Script " . $ScriptName . " did not change."); } } else={ - :log warning ("Looks like new script " . $scriptname . " is not valid. Ignoring!"); + :log warning ("Looks like new script " . $ScriptName . " is not valid. Ignoring!"); } } else={ - :log debug ("No update for script " . $scriptname); + :log debug ("No update for script " . $ScriptName . "."); } } :if ($GlobalConfigVersion < $ExpectedConfigVersion) do={ $SendNotification "Configuration warning!" \ - ("Current configuration on " . $identity . " is out of date. " . \ + ("Current configuration on " . $Identity . " is out of date. " . \ "Please update global-config, then increase variable " . \ "GlobalConfigVersion (currently " . $GlobalConfigVersion . \ ") to " . $ExpectedConfigVersion . " and re-run global-config."); |