Advertisement
Guest User

fserv

a guest
Feb 22nd, 2016
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.05 KB | None | 0 0
  1. -- Commands ----------------------
  2. --# list: List all files
  3. --# get: Download file
  4. --# send: Upload file
  5. --# delete: Delete file
  6. --# mkdir: Make Directory
  7. --# copy: Copy file with new name
  8. --# stop: Stop server
  9. --# ping: Ping server
  10. ----------------------------------
  11. -- Set username and pass here ----
  12.   user = "local"
  13.   pass = "admin"
  14. ----------------------------------
  15.  
  16. if not fs.exists("server") then
  17.   fs.makeDir("server")
  18. else
  19.   if not fs.isDir("server") then
  20.     fs.copy("server","server2")
  21.     fs.delete("server")
  22.     fs.makeDir("server")
  23.   end
  24. end
  25. ver = 1.0
  26. function printt(t)
  27.   ts = os.time()
  28.   time = "["..textutils.formatTime(ts).."] "
  29.   print(time..t)
  30. end
  31. term.clear()
  32. term.setCursorPos(1,1)
  33. print("File Server Console")
  34. printt("Server version: "..ver)
  35. printt("Lua version: ".._VERSION)
  36. printt(_HOST)
  37. print("Please type modem side:")
  38. modem = read()
  39. rednet.open(modem)
  40. printt("Started!")
  41. while true do
  42.   s,m,p = rednet.receive()
  43.   printt("Message received")
  44.   if type(m)=="table" then
  45.     if m[1]=="fserver" then
  46.       if m[2]=="list" then
  47.         printt("Sending file list to computer id "..s)
  48.         sleep(.1) -- because rednet has it's problems.
  49.         rednet.send(s,fs.list("/server"))
  50.       elseif m[2]=="delete" then
  51.         printt("Delete requested from computer id "..s)
  52.         if m[3]==user and m[4]==pass then
  53.           printt("[Deletion] Login completed by computer id "..s)
  54.           fs.delete("/server/"..m[5])
  55.           printt("Deleted "..m[5].." to computer id "..s.."'s request")
  56.         else
  57.           printt("Cancelled delete request from computer id "..s)
  58.           sleep(.1)
  59.           rednet.send(s,"Invalid user or pass")
  60.         end
  61.       elseif m[2]=="get" then
  62.         printt("File download requested from computer id "..s)
  63.         if m[3]==user and m[4]==pass then
  64.           printt("[Download] Login completed by computer id "..s)
  65.           file = fs.open("server/"..m[5],"r")
  66.           sleep(.1)
  67.           rednet.send(s,file.readAll())
  68.           file.close()
  69.           printt("Sent code of file: "..m[5].." to computer id "..s)
  70.         else
  71.           printt("Cancelled download request")
  72.           sleep(.1)
  73.           rednet.send(s,"Invalid user or pass")
  74.         end
  75.       elseif m[2]=="send" then
  76.         printt("File upload requested from computer id "..s)
  77.         if m[3]==user and m[4]==pass then
  78.           printt("[Upload] Login completed by computer id "..s)
  79.           file = fs.open("server/"..m[5],"w")
  80.           file.write(m[6])
  81.           file.close()
  82.           printt("File uploaded: '"..m[5].."'")
  83.         else
  84.           printt("Cancelled file upload")
  85.           sleep(.1)
  86.           rednet.send(s,"Invalid user or pass")
  87.         end
  88.       elseif m[2]=="mkdir" then
  89.         printt("Directory creation requested from computer id "..s)
  90.         if m[3]==user and m[4]==pass then
  91.           printt("[MakeDir] Login completed by computer id "..s)
  92.           fs.makeDir("/server/"..m[5])
  93.           printt("Made directory '"..m[5].."'")
  94.         else
  95.           printt("Cancelled folder creation request")
  96.           sleep(.1)
  97.           rednet.send(s,"Invalid user or pass")
  98.         end
  99.       elseif m[2]=="copy" then
  100.         printt("File duplication requested from computer id "..s)
  101.         if m[3]==user and m[4]==pass then
  102.           printt("[Copy] Login completed by computer id "..s)
  103.           fs.copy(m[5],m[6])
  104.           printt("Copied '"..m[5].."' to '"..m[6]"'")
  105.         else
  106.           printt("Cancelled copy request")
  107.           sleep(.1)
  108.           rednet.send(s,"Invalid user or pass")
  109.         end
  110.       elseif m[2]=="stop" then
  111.         printt("Requested to stop server by computer id "..s)
  112.         if m[3]==user and m[4]==pass then
  113.           printt("Stopped!")
  114.           error()
  115.         else
  116.           printt("Cancelled stop request")
  117.           sleep(.1)
  118.           rednet.send(s,"Invalid user or pass")
  119.         end
  120.       elseif m[2]=="ping" then
  121.         printt("Pinging computer id "..s)
  122.         sleep(.1)
  123.         rednet.send(s,"Success")
  124.       end
  125.     end
  126.   end
  127. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement