Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Commands ----------------------
- --# list: List all files
- --# get: Download file
- --# send: Upload file
- --# delete: Delete file
- --# mkdir: Make Directory
- --# copy: Copy file with new name
- --# stop: Stop server
- --# ping: Ping server
- ----------------------------------
- -- Set username and pass here ----
- user = "local"
- pass = "admin"
- ----------------------------------
- if not fs.exists("server") then
- fs.makeDir("server")
- else
- if not fs.isDir("server") then
- fs.copy("server","server2")
- fs.delete("server")
- fs.makeDir("server")
- end
- end
- ver = 1.0
- function printt(t)
- ts = os.time()
- time = "["..textutils.formatTime(ts).."] "
- print(time..t)
- end
- term.clear()
- term.setCursorPos(1,1)
- print("File Server Console")
- printt("Server version: "..ver)
- printt("Lua version: ".._VERSION)
- printt(_HOST)
- print("Please type modem side:")
- modem = read()
- rednet.open(modem)
- printt("Started!")
- while true do
- s,m,p = rednet.receive()
- printt("Message received")
- if type(m)=="table" then
- if m[1]=="fserver" then
- if m[2]=="list" then
- printt("Sending file list to computer id "..s)
- sleep(.1) -- because rednet has it's problems.
- rednet.send(s,fs.list("/server"))
- elseif m[2]=="delete" then
- printt("Delete requested from computer id "..s)
- if m[3]==user and m[4]==pass then
- printt("[Deletion] Login completed by computer id "..s)
- fs.delete("/server/"..m[5])
- printt("Deleted "..m[5].." to computer id "..s.."'s request")
- else
- printt("Cancelled delete request from computer id "..s)
- sleep(.1)
- rednet.send(s,"Invalid user or pass")
- end
- elseif m[2]=="get" then
- printt("File download requested from computer id "..s)
- if m[3]==user and m[4]==pass then
- printt("[Download] Login completed by computer id "..s)
- file = fs.open("server/"..m[5],"r")
- sleep(.1)
- rednet.send(s,file.readAll())
- file.close()
- printt("Sent code of file: "..m[5].." to computer id "..s)
- else
- printt("Cancelled download request")
- sleep(.1)
- rednet.send(s,"Invalid user or pass")
- end
- elseif m[2]=="send" then
- printt("File upload requested from computer id "..s)
- if m[3]==user and m[4]==pass then
- printt("[Upload] Login completed by computer id "..s)
- file = fs.open("server/"..m[5],"w")
- file.write(m[6])
- file.close()
- printt("File uploaded: '"..m[5].."'")
- else
- printt("Cancelled file upload")
- sleep(.1)
- rednet.send(s,"Invalid user or pass")
- end
- elseif m[2]=="mkdir" then
- printt("Directory creation requested from computer id "..s)
- if m[3]==user and m[4]==pass then
- printt("[MakeDir] Login completed by computer id "..s)
- fs.makeDir("/server/"..m[5])
- printt("Made directory '"..m[5].."'")
- else
- printt("Cancelled folder creation request")
- sleep(.1)
- rednet.send(s,"Invalid user or pass")
- end
- elseif m[2]=="copy" then
- printt("File duplication requested from computer id "..s)
- if m[3]==user and m[4]==pass then
- printt("[Copy] Login completed by computer id "..s)
- fs.copy(m[5],m[6])
- printt("Copied '"..m[5].."' to '"..m[6]"'")
- else
- printt("Cancelled copy request")
- sleep(.1)
- rednet.send(s,"Invalid user or pass")
- end
- elseif m[2]=="stop" then
- printt("Requested to stop server by computer id "..s)
- if m[3]==user and m[4]==pass then
- printt("Stopped!")
- error()
- else
- printt("Cancelled stop request")
- sleep(.1)
- rednet.send(s,"Invalid user or pass")
- end
- elseif m[2]=="ping" then
- printt("Pinging computer id "..s)
- sleep(.1)
- rednet.send(s,"Success")
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement