script-updates: add configuration versioning

This commit is contained in:
Christian Hesse 2019-01-03 15:36:26 +01:00
parent 0f72662745
commit 6e03a3b935
3 changed files with 20 additions and 0 deletions

View file

@ -4,6 +4,10 @@
#
# global configuration
# Make sure all configuration properties are up to date and this
# value is in sync with value in script 'global-functions'!
:global GlobalConfigVersion 0;
# This is used for DNS and backup file.
:global "domain" "example.com";
:global "hostname-in-zone" true;

View file

@ -4,6 +4,9 @@
#
# global functions
# expected configuration version
:global ExpectedConfigVersion 0;
# read input from user
:global Read do={
:return;

View file

@ -4,11 +4,16 @@
#
# update installed scripts from file or url
:global GlobalConfigVersion;
:global ExpectedConfigVersion;
:global "identity";
:global "script-updates-fetch";
:global "script-updates-baseurl";
:global "script-updates-urlsuffix";
:global "script-updates-ignore";
:global SendNotification;
:foreach script in=[ / system script find ] do={
:local ignore 0;
:local scriptname [ / system script get $script name ];
@ -71,3 +76,11 @@
:log debug ("No update for script " . $scriptname);
}
}
:if ($GlobalConfigVersion < $ExpectedConfigVersion) do={
$SendNotification "Configuration warning!" \
("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.");
}