- Updated skill data to 2.5.0 - Added more mods to ring/amulet templates - Added support for "Auras you Cast" modifiers - Fixed un-evadable skills - Other minor fixes
55 lines
1.3 KiB
Lua
55 lines
1.3 KiB
Lua
#@ SimpleGraphic
|
|
-- Path of Building
|
|
--
|
|
-- Module: Launch Install
|
|
-- Installation bootstrap
|
|
--
|
|
|
|
local basicFiles = { "UpdateCheck.lua", "UpdateApply.lua", "Launch.lua" }
|
|
|
|
local xml = require("xml")
|
|
local curl = require("lcurl.safe")
|
|
|
|
ConClear()
|
|
ConPrintf("Preparing to complete installation...\n")
|
|
|
|
local localBranch, localSource
|
|
local localManXML = xml.LoadXMLFile("manifest.xml")
|
|
if localManXML and localManXML[1].elem == "PoBVersion" then
|
|
for _, node in ipairs(localManXML[1]) do
|
|
if type(node) == "table" then
|
|
if node.elem == "Version" then
|
|
localBranch = node.attrib.branch
|
|
elseif node.elem == "Source" then
|
|
if node.attrib.part == "program" then
|
|
localSource = node.attrib.url
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
if not localBranch or not localSource then
|
|
Exit("Install failed. (Missing or invalid manifest)")
|
|
return
|
|
end
|
|
localSource = localSource:gsub("{branch}", localBranch)
|
|
for _, name in ipairs(basicFiles) do
|
|
local text = ""
|
|
local easy = curl.easy()
|
|
easy:setopt_url(localSource..name)
|
|
easy:setopt_writefunction(function(data)
|
|
text = text..data
|
|
return true
|
|
end)
|
|
easy:perform()
|
|
local size = easy:getinfo(curl.INFO_SIZE_DOWNLOAD)
|
|
easy:close()
|
|
if size == 0 then
|
|
Exit("Install failed. (Couldn't download program files)")
|
|
return
|
|
end
|
|
local outFile = io.open(name, "wb")
|
|
outFile:write(text)
|
|
outFile:close()
|
|
end
|
|
Restart() |