Create build
This commit is contained in:
parent
43f248f67f
commit
45828ca196
1 changed files with 83 additions and 0 deletions
83
src/sdk/build
Normal file
83
src/sdk/build
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
local args = {...}
|
||||||
|
if not sPhone then
|
||||||
|
print("build requires sPhone")
|
||||||
|
end
|
||||||
|
if #args < 2 then
|
||||||
|
print("Usage: build <App Folder> <Output>")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local dir = args[1]
|
||||||
|
local output = args[2]
|
||||||
|
local final = {}
|
||||||
|
local builderVersion = 1
|
||||||
|
|
||||||
|
if not fs.exists(dir) or not fs.isDir(dir) then
|
||||||
|
print("Input must be a folder")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local f = fs.open(dir.."/config","r")
|
||||||
|
local config = textutils.unserialize(f.readAll())
|
||||||
|
f.close()
|
||||||
|
if not config then
|
||||||
|
print("Config file is corrupted")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- COMPRESS
|
||||||
|
|
||||||
|
local filesystem = {}
|
||||||
|
|
||||||
|
local function readFile(path)
|
||||||
|
local file = fs.open(path,"r")
|
||||||
|
local variable = file.readAll()
|
||||||
|
file.close()
|
||||||
|
return variable
|
||||||
|
end
|
||||||
|
|
||||||
|
local function explore(dir)
|
||||||
|
local buffer = {}
|
||||||
|
local sBuffer = fs.list(dir)
|
||||||
|
for i,v in pairs(sBuffer) do
|
||||||
|
sleep(0.05)
|
||||||
|
if fs.isDir(dir.."/"..v) then
|
||||||
|
if v ~= ".git" then
|
||||||
|
buffer[v] = explore(dir.."/"..v)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
buffer[v] = readFile(dir.."/"..v)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return buffer
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- COMPRESS
|
||||||
|
|
||||||
|
local result = {}
|
||||||
|
|
||||||
|
|
||||||
|
print("Name:",config.name)
|
||||||
|
print("Author:",config.author)
|
||||||
|
print("Version:",config.version)
|
||||||
|
print("ID:",config.id)
|
||||||
|
|
||||||
|
if string.getExtension(output) ~= "spk" then
|
||||||
|
printError("TIP: Use .spk extension")
|
||||||
|
end
|
||||||
|
|
||||||
|
print("Building...")
|
||||||
|
|
||||||
|
local filesystem = explore(args[1].."/main")
|
||||||
|
result["files"] = textutils.serialize(filesystem)
|
||||||
|
result["config"] = textutils.serialize(config)
|
||||||
|
|
||||||
|
|
||||||
|
local newResult = textutils.serialize(result)
|
||||||
|
local info = "--\n-- sPhone Application Package\n-- Built with SPK builder "..builderVersion.."\n--"
|
||||||
|
local f = fs.open(output,"w")
|
||||||
|
f.write(info.."\n"..newResult)
|
||||||
|
f.close()
|
||||||
|
|
Loading…
Reference in a new issue