Advertisement
dracoix

tapeWrite

Feb 27th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.01 KB | None | 0 0
  1. local args = { ... }
  2. local tape = peripheral.find("tape_drive")
  3. local bytery = 0
  4. local function writeTape(url)
  5.   local file, msg, _, y, success
  6.   local block = 8192 --How much to read at a time
  7.  
  8.   tape.stop()
  9.   tape.seek(-tape.getSize())
  10.   tape.stop() --Just making sure
  11.  
  12.   print("Writing...")
  13.  
  14.   file = http.get(url)
  15.  
  16.   repeat
  17.     local bytes = {}
  18.     for i = 1, block do
  19.       local byte = file.read()
  20.    
  21.       if not byte then break end
  22.       bytes[#bytes + 1] = byte
  23.     end
  24.     if #bytes > 0 then
  25.       if not tape.isReady() then
  26.         io.stderr:write("\nError: Tape was removed during writing.\n")
  27.         file.close()
  28.         return
  29.       end
  30.       bytery = bytery + #bytes
  31.       term.write("Read " .. bytery .. " bytes...\n")
  32.       for i = 1, #bytes do
  33.         tape.write(bytes[i])
  34.       end
  35.       sleep(0)
  36.     end
  37.   until not bytes or #bytes <= 0
  38.   file.close()
  39.   tape.stop()
  40.   tape.seek(-tape.getSize())
  41.   tape.stop() --Just making sure
  42.   print("\nDone.")
  43. end
  44.  
  45. writeTape(args[1])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement