Guest User

serverside

a guest
Dec 13th, 2013
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.06 KB | None | 0 0
  1. local side = "top"
  2.  
  3. function split(str, pattern)
  4.   local t = { }
  5.   local fpat = "(.-)" .. pattern
  6.   local last_end = 1
  7.   local s, e, cap = str:find(fpat, 1)
  8.   while s do
  9.     if s ~= 1 or cap ~= "" then
  10.       table.insert(t,cap)
  11.     end
  12.     last_end = e+1
  13.     s, e, cap = str:find(fpat, last_end)
  14.   end
  15.   if last_end <= #str then
  16.     cap = str:sub(last_end)
  17.     table.insert(t, cap)
  18.   end
  19.   return t
  20. end
  21. rednet.open(side)
  22. print("fileserv made by Egor305")
  23. while true do
  24.     local sender,msg=rednet.receive()
  25.     data = split(msg,"~!SP!~")
  26.     if data[1] == "$send" and data[2] and data[3] then
  27.         if not fs.exists("/data/~"..sender) or not fs.isDir("/data/~"..sender) then
  28.             fs.makeDir("/data/~"..sender)
  29.         end
  30.         fh=fs.open("/data/~"..sender.."/"..data[2],"w")
  31.         if fh then
  32.             fh.write(data[3])
  33.             fh.close()
  34.             rednet.send(sender,"All, ok!")
  35.             print(sender..": "..data[1].." "..data[2].." "..data[3])
  36.         end
  37.     end
  38.     if data[1] == "$get" and data[2] and data[3] then
  39.         if not fs.exists("/data/~"..data[2].."/"..data[3]) or (data[3]:sub(1,1) == "!" and data[2]~=tostring(sender)) then
  40.             rednet.send(sender,"")
  41.         else
  42.             fh = fs.open("/data/~"..data[2].."/"..data[3],"r")
  43.             if fh then
  44.                 rednet.send(sender,fh.readAll())
  45.                 fh.close()
  46.                 print(sender..": "..data[1].." "..data[2].." "..data[3])
  47.             end
  48.         end
  49.     end
  50.     if data[1] == "$dir" then
  51.         if not fs.exists("/data/~"..sender) or not fs.isDir("/data/~"..sender) then
  52.             fs.makeDir("/data/~"..sender)
  53.         end
  54.         rednet.send(sender,textutils.serialize(fs.list("/data/~"..sender)))
  55.         print(sender..": "..data[1])
  56.     end
  57.     if data[1] == "$del" then
  58.         if fs.exists("/data/~"..sender.."/"..data[2]) then
  59.             fs.delete("/data/~"..sender.."/"..data[2])
  60.             rednet.send(sender,"All, ok!")
  61.             print(sender..": "..data[1].." "..data[2])
  62.         end
  63.     end
  64. end
Advertisement
Add Comment
Please, Sign In to add comment