Files
Basalt2/tools/generate-config.lua
Robert Jelic c78983cdac Test
2025-02-15 19:16:32 +01:00

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()