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