mirror of
https://github.com/bjc/prosody.git
synced 2025-04-03 21:27:38 +03:00
43 lines
1.1 KiB
Lua
43 lines
1.1 KiB
Lua
-- Prosody IM
|
|
-- Copyright (C) 2008-2011 Florian Zeitz
|
|
--
|
|
-- This project is MIT/X11 licensed. Please see the
|
|
-- COPYING file in the source package for more information.
|
|
--
|
|
-- luacheck: ignore 113/setfenv 113/loadstring
|
|
|
|
local load, loadstring, setfenv = load, loadstring, setfenv;
|
|
local io_open = io.open;
|
|
local envload;
|
|
local envloadfile;
|
|
|
|
if setfenv then
|
|
function envload(code, source, env)
|
|
local f, err = loadstring(code, source);
|
|
if f and env then setfenv(f, env); end
|
|
return f, err;
|
|
end
|
|
|
|
function envloadfile(file, env)
|
|
local fh, err, errno = io_open(file);
|
|
if not fh then return fh, err, errno; end
|
|
local f, err = load(function () return fh:read(2048); end, "@"..file);
|
|
fh:close();
|
|
if f and env then setfenv(f, env); end
|
|
return f, err;
|
|
end
|
|
else
|
|
function envload(code, source, env)
|
|
return load(code, source, nil, env);
|
|
end
|
|
|
|
function envloadfile(file, env)
|
|
local fh, err, errno = io_open(file);
|
|
if not fh then return fh, err, errno; end
|
|
local f, err = load(fh:lines(2048), "@"..file, nil, env);
|
|
fh:close();
|
|
return f, err;
|
|
end
|
|
end
|
|
|
|
return { envload = envload, envloadfile = envloadfile };
|