autoupdater: add -o (oneshot) switch
This switch is used for the fallback mode which ensures that updates are performed even when a node is off when updates are usually done.
This commit is contained in:
parent
253ce7e8f2
commit
7b9b3058de
|
@ -21,7 +21,23 @@ local branch = uci:get_all('autoupdater', settings.branch)
|
||||||
local old_version = util.trim(fs.readfile(settings.version_file) or '')
|
local old_version = util.trim(fs.readfile(settings.version_file) or '')
|
||||||
|
|
||||||
|
|
||||||
local force = (arg[1] == '-f')
|
-- If force is true the updater will perform an upgrade regardless of
|
||||||
|
-- the priority and even when it is disabled in uci
|
||||||
|
local force = false
|
||||||
|
|
||||||
|
-- If oneshot is true the updater will perform an update only if the whole
|
||||||
|
-- timespan given by the priority has passed
|
||||||
|
local oneshot = false
|
||||||
|
|
||||||
|
|
||||||
|
for _, a in ipairs(arg) do
|
||||||
|
if a == '-f' then
|
||||||
|
force = true
|
||||||
|
elseif a == '-o' then
|
||||||
|
oneshot = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
if settings.enabled ~= '1' and not force then
|
if settings.enabled ~= '1' and not force then
|
||||||
io.stderr:write('autoupdater is disabled.\n')
|
io.stderr:write('autoupdater is disabled.\n')
|
||||||
|
@ -158,6 +174,8 @@ local function get_probability(date, priority)
|
||||||
return 0
|
return 0
|
||||||
elseif diff >= seconds then
|
elseif diff >= seconds then
|
||||||
return 1
|
return 1
|
||||||
|
elseif oneshot then
|
||||||
|
return 0
|
||||||
else
|
else
|
||||||
local x = diff/seconds
|
local x = diff/seconds
|
||||||
-- This is the most simple polynomial with value 0 at 0, 1 at 1, and whose first derivative is 0 at both 0 and 1
|
-- This is the most simple polynomial with value 0 at 0, 1 at 1, and whose first derivative is 0 at both 0 and 1
|
||||||
|
|
Loading…
Reference in New Issue