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
 |