42 lines
1.4 KiB
Lua
42 lines
1.4 KiB
Lua
local baseDownloadURL = "https://nazara.digitalpulse.software"
|
|
|
|
local function downloadAssetsRule(name)
|
|
rule("download.assets." .. name)
|
|
set_kind("project")
|
|
before_build(function (opt)
|
|
import("net.http")
|
|
import("utils.archive")
|
|
|
|
local referenceVersion = io.readfile("assets/" .. name .. "_version.txt")
|
|
local currentVersion = os.exists("assets/" .. name .. "/version.txt") and io.readfile("assets/" .. name .. "/version.txt")
|
|
if referenceVersion == currentVersion then
|
|
utils.vprintf(name .. " assets are up-to-date, ignoring\n")
|
|
return
|
|
end
|
|
|
|
local text = {}
|
|
table.insert(text, currentVersion and "update " or "download ")
|
|
table.insert(text, name)
|
|
table.insert(text, " assets?")
|
|
if currentVersion then
|
|
table.insert(text, " current version is " .. currentVersion .. " and remote version is " .. referenceVersion)
|
|
end
|
|
table.insert(text, "\nthis is required to run them")
|
|
|
|
local confirm = utils.confirm({description = table.concat(text), default = true})
|
|
if not confirm then
|
|
utils.vprintf("aborting " .. name .. " assets downloading\n")
|
|
return
|
|
end
|
|
|
|
os.rm("assets/" .. name)
|
|
http.download(baseDownloadURL .. "/assets_" .. name .. ".zip", "assets_" .. name .. ".zip")
|
|
archive.extract("assets_" .. name .. ".zip", "assets")
|
|
os.rm("assets_" .. name .. ".zip")
|
|
|
|
print(name .. " assets downloaded!")
|
|
end)
|
|
end
|
|
|
|
downloadAssetsRule("examples")
|
|
downloadAssetsRule("tests") |