32 lines
680 B
Lua
32 lines
680 B
Lua
local shutil = {}
|
|
function shutil.genenv()
|
|
local et = os.genenv()
|
|
for k,v in pairs(shutil) do
|
|
if k ~= "genenv" then
|
|
et[k] = v
|
|
end
|
|
end
|
|
return et
|
|
end
|
|
function loadfile(fn)
|
|
local f=io.open(fn,"rb")
|
|
if not f then return false, "cannot read file" end
|
|
local S=f:read("*a")
|
|
f:close()
|
|
return load(S,"=("..fn..")","bt",os.genenv())
|
|
end
|
|
function run(fn,...)
|
|
local lf = loadfile(fn)
|
|
if not lf then return false, "cannot load file" end
|
|
local r = {pcall(lf,...)}
|
|
if r[1] == true then
|
|
table.remove(r,1)
|
|
end
|
|
print(table.unpack(r))
|
|
end
|
|
function srun(fn,...)
|
|
local lf = loadfile(fn)
|
|
if not lf then return false, "cannot load file" end
|
|
spawn(fn,print(pcall(lf,...)))
|
|
end
|