otamanager: minor factorization

This commit is contained in:
Benoit Pierre
2025-05-30 00:23:50 +02:00
parent 0c35ac4bf5
commit b28318ea2e

View File

@@ -13,6 +13,7 @@ local UIManager = require("ui/uimanager")
local Version = require("version")
local lfs = require("libs/libkoreader-lfs")
local logger = require("logger")
local util = require("util")
local _ = require("gettext")
local C_ = _.pgettext
local T = require("ffi/util").template
@@ -303,6 +304,14 @@ function OTAManager:_buildLocalPackage()
return nil
end
local tar_cmd = {
'./tar',
'--create', '--file='..self.installed_package,
'--owner=0', '--group=0',
'--no-recursion', '-C', '..',
'--verbatim-files-from', '--files-from', self.package_indexfile,
}
-- With visual feedback if supported...
if self.can_pretty_print then
os.execute("./fbink -q -y -7 -pmh 'Preparing local OTA package'")
@@ -328,14 +337,10 @@ function OTAManager:_buildLocalPackage()
end
-- And since we want a percentage, devise the exact value we need for tar to spit out exactly 100 checkpoints ;).
local cpoints = blocks * (1/100)
return os.execute(string.format(
"./tar --no-recursion -cf %s -C .. -T %s --checkpoint=%d --checkpoint-action=exec='./fbink -q -y -6 -P $(($TAR_CHECKPOINT/%d))'",
self.installed_package, self.package_indexfile, cpoints, cpoints))
else
return os.execute(string.format(
"./tar --no-recursion -cf %s -C .. -T %s",
self.installed_package, self.package_indexfile))
table.insert(tar_cmd, string.format('--checkpoint=%d', cpoints))
table.insert(tar_cmd, string.format('--checkpoint-action=exec=./fbink -q -y -6 -P $(($TAR_CHECKPOINT/%d))', cpoints))
end
return os.execute(util.shell_escape(tar_cmd))
end
function OTAManager:zsync(full_dl)