Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- rednet.open("right")
- local client
- function myWrite(...)
- rednet.send(client,write)
- rednet.send(client,table.concat({...}," "))
- end
- function run(id,prog,...)
- local rProg = shell.resolveProgram(prog)
- local env = { term= { write = myWrite, }, print = myWrite,}
- for k,v in pairs(_G) do
- if type(k)=="string" and type(v)=="table" then
- env[k] = v
- end
- end
- env.shell=shell
- local f,err = loadfile( rProg )
- if f then
- setfenv(f,env)
- local args={...}
- local ret,err = pcall(function() f(unpack(args)) end)
- if not ok then
- if err and err~="" then
- error(err,1)
- end
- end
- end
- if err and err~="" then
- error(err,1)
- end
- return ret
- end
- function split(s)
- local t = {}
- for v in string.gmatch(s,"[^%s]+") do
- t[#t+1]=v
- end
- return t
- end
- while true do
- local id,msg = rednet.receive()
- local cmd,args=string.gmatch(msg,"(.-) (.*)$")()
- print("'"..args.."' "..id)
- if args then
- args=split(args)
- print(args[1])
- ret = run(id,cmd,unpack(args))
- else
- ret = run(id,cmd)
- end
- rednet.send(id,tostring(ret))
- rednet.send(id,"end")
- end
- rednet.close("right")
Advertisement
Add Comment
Please, Sign In to add comment