52 lines
1.3 KiB
Lua
52 lines
1.3 KiB
Lua
local function serialize(t, indent)
|
|
indent = indent or ""
|
|
local result = "{\n"
|
|
for k, v in pairs(t) do
|
|
result = result .. indent .. " "
|
|
|
|
if type(k) == "string" then
|
|
result = result .. "[\"" .. k .. "\"] = "
|
|
else
|
|
result = result .. "[" .. k .. "] = "
|
|
end
|
|
|
|
if type(v) == "table" then
|
|
result = result .. serialize(v, indent .. " ")
|
|
elseif type(v) == "string" then
|
|
result = result .. "\"" .. v .. "\""
|
|
else
|
|
result = result .. tostring(v)
|
|
end
|
|
result = result .. ",\n"
|
|
end
|
|
return result .. indent .. "}"
|
|
end
|
|
|
|
local function scanDir(dir)
|
|
local files = {}
|
|
for file in io.popen('find "'..dir..'" -type f -name "*.lua"'):lines() do
|
|
local name = file:match("([^/]+)%.lua$")
|
|
if name then
|
|
files[file] = {
|
|
name = name,
|
|
path = file:gsub("^src", ""),
|
|
}
|
|
end
|
|
end
|
|
return files
|
|
end
|
|
|
|
local config = {
|
|
repo = "https://raw.githubusercontent.com/Pyroxenium/Basalt2/master",
|
|
required = {
|
|
["src/init.lua"] = "/init.lua",
|
|
["src/render.lua"] = "/render.lua",
|
|
},
|
|
elements = scanDir("src/elements"),
|
|
plugins = scanDir("src/plugins")
|
|
}
|
|
|
|
local f = io.open("config.lua", "w")
|
|
f:write("return " .. serialize(config))
|
|
f:close()
|