autoupdater: rename oneshot updates to fallback, improve handling for frequent runs
The oneshot update now won't be considered until 24h after the priority delay has passed (so regular updates should have at least one chance to do the updates even for PRIORITY=0 updates)
This commit is contained in:
parent
ea3d8703b4
commit
a54d13eb31
|
@ -25,16 +25,16 @@ local old_version = util.trim(fs.readfile(settings.version_file) or '')
|
||||||
-- the priority and even when it is disabled in uci
|
-- the priority and even when it is disabled in uci
|
||||||
local force = false
|
local force = false
|
||||||
|
|
||||||
-- If oneshot is true the updater will perform an update only if the whole
|
-- If fallback is true the updater will perform an update only if the
|
||||||
-- timespan given by the priority has passed
|
-- timespan given by the priority and another 24h have passed
|
||||||
local oneshot = false
|
local fallback = false
|
||||||
|
|
||||||
|
|
||||||
for _, a in ipairs(arg) do
|
for _, a in ipairs(arg) do
|
||||||
if a == '-f' then
|
if a == '-f' then
|
||||||
force = true
|
force = true
|
||||||
elseif a == '-o' then
|
elseif a == '--fallback' then
|
||||||
oneshot = true
|
fallback = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -182,12 +182,19 @@ local function get_probability(date, priority)
|
||||||
else
|
else
|
||||||
-- Will give 1 when priority == 0, and lower probabilities the higher the priority value is
|
-- Will give 1 when priority == 0, and lower probabilities the higher the priority value is
|
||||||
-- (similar to the old static probability system)
|
-- (similar to the old static probability system)
|
||||||
return 0.9^priority
|
return 0.75^priority
|
||||||
end
|
end
|
||||||
|
|
||||||
|
elseif fallback then
|
||||||
|
if diff >= seconds + 86400 then
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
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