Advertisement
Guest User

fserv

a guest
Feb 22nd, 2016
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.25 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.           rednet.send(s,"true")
  57.         else
  58.           printt("Cancelled delete request from computer id "..s)
  59.           sleep(.1)
  60.           rednet.send(s,"Invalid user or pass")
  61.         end
  62.       elseif m[2]=="get" then
  63.         printt("File download requested from computer id "..s)
  64.         if m[3]==user and m[4]==pass then
  65.           printt("[Download] Login completed by computer id "..s)
  66.           file = fs.open("server/"..m[5],"r")
  67.           sleep(.1)
  68.           rednet.send(s,file.readAll())
  69.           file.close()
  70.           printt("Sent code of file: "..m[5].." to computer id "..s)
  71.           rednet.send(s,"true")
  72.         else
  73.           printt("Cancelled download request")
  74.           sleep(.1)
  75.           rednet.send(s,"Invalid user or pass")
  76.         end
  77.       elseif m[2]=="send" then
  78.         printt("File upload requested from computer id "..s)
  79.         if m[3]==user and m[4]==pass then
  80.           printt("[Upload] Login completed by computer id "..s)
  81.           file = fs.open("server/"..m[5],"w")
  82.           file.write(m[6])
  83.           file.close()
  84.           printt("File uploaded: '"..m[5].."'")
  85.           rednet.send(s,"true")
  86.         else
  87.           printt("Cancelled file upload")
  88.           sleep(.1)
  89.           rednet.send(s,"Invalid user or pass")
  90.         end
  91.       elseif m[2]=="mkdir" then
  92.         printt("Directory creation requested from computer id "..s)
  93.         if m[3]==user and m[4]==pass then
  94.           printt("[MakeDir] Login completed by computer id "..s)
  95.           fs.makeDir("/server/"..m[5])
  96.           printt("Made directory '"..m[5].."'")
  97.           rednet.send(s,"true")
  98.         else
  99.           printt("Cancelled folder creation request")
  100.           sleep(.1)
  101.           rednet.send(s,"Invalid user or pass")
  102.         end
  103.       elseif m[2]=="copy" then
  104.         printt("File duplication requested from computer id "..s)
  105.         if m[3]==user and m[4]==pass then
  106.           printt("[Copy] Login completed by computer id "..s)
  107.           fs.copy(m[5],m[6])
  108.           printt("Copied '"..m[5].."' to '"..m[6]"'")
  109.           rednet.send(s,"true")
  110.         else
  111.           printt("Cancelled copy request")
  112.           sleep(.1)
  113.           rednet.send(s,"Invalid user or pass")
  114.         end
  115.       elseif m[2]=="stop" then
  116.         printt("Requested to stop server by computer id "..s)
  117.         if m[3]==user and m[4]==pass then
  118.           printt("Stopped!")
  119.           rednet.send(s,"true")
  120.           os.shutdown()
  121.         else
  122.           printt("Cancelled stop request")
  123.           sleep(.1)
  124.           rednet.send(s,"Invalid user or pass")
  125.         end
  126.       elseif m[2]=="ping" then
  127.         printt("Pinging computer id "..s)
  128.         sleep(.1)
  129.         rednet.send(s,"Success")
  130.       end
  131.     end
  132.   end
  133. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement