mirror of
https://github.com/Reuh/candran.git
synced 2025-10-27 17:59:30 +00:00
40 lines
751 B
Text
40 lines
751 B
Text
local util = {}
|
|
|
|
function util.search(modpath, exts={})
|
|
for _, ext in ipairs(exts) do
|
|
for path in package.path:gmatch("[^;]+") do
|
|
local fpath = path:gsub("%.lua", "."..ext):gsub("%?", (modpath:gsub("%.", "/")))
|
|
local f = io.open(fpath)
|
|
if f then
|
|
f:close()
|
|
return fpath
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
function util.load(str, name, env)
|
|
if _VERSION == "Lua 5.1" then
|
|
local fn, err = loadstring(str, name)
|
|
if not fn then return fn, err end
|
|
return env ~= nil and setfenv(fn, env) or fn
|
|
else
|
|
if env then
|
|
return load(str, name, nil, env)
|
|
else
|
|
return load(str, name)
|
|
end
|
|
end
|
|
end
|
|
|
|
function util.merge(...)
|
|
local r = {}
|
|
for _, t in ipairs({...}) do
|
|
for k, v in pairs(t) do
|
|
r[k] = v
|
|
end
|
|
end
|
|
return r
|
|
end
|
|
|
|
return util
|