Advertisement
jordyvl

print test

Nov 21st, 2014
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.57 KB | None | 0 0
  1. term.clear()
  2. term.setCursorPos(1,1)
  3. if not fs.exists(".lmnet/apis/ui") then
  4.     if not fs.exists(".lmnet/apis") then
  5.         if not fs.exists(".lmnet") then
  6.             fs.makeDir(".lmnet")
  7.         end
  8.         fs.makeDir(".lmnet/apis")
  9.     end
  10.     if not http then
  11.         printError("HTTP not enabled.")
  12.         return
  13.     end
  14.     local remote = http.get("https://raw.github.com/MultHub/LMNet-OS/master/src/apis/ui.lua")
  15.     if not remote then
  16.         printError("Error getting required API. Please try again later.")
  17.         return
  18.     end
  19.     local file = fs.open(".lmnet/apis/ui", "w")
  20.     file.write(remote.readAll())
  21.     file.close()
  22.     remote.close()
  23. end
  24. for _, v in pairs(peripheral.getNames()) do
  25.   if peripheral.getType(v) == "printer" then
  26.     print(v)
  27.   end
  28. enda
  29. local tArgs = {...}
  30. if #tArgs < 1 or (tArgs[1] == "-1" and #tArgs < 2) then
  31.     print("Usage: "..shell.getRunningProgram().." [-1] <file> [file ...]")
  32.     print("Use -1 to print all files on 1 printer.")
  33.     return
  34. end
  35. local onePrinter = false
  36. if tArgs[1] == "-1" then
  37.     table.remove(tArgs, 1)
  38.     onePrinter = true
  39. end
  40. if not ui then
  41.     os.loadAPI(".lmnet/apis/ui")
  42. end
  43. local printers = {}
  44. for _, v in pairs(peripheral.getNames()) do
  45.     if peripheral.getType(v) == "printer" then
  46.         table.insert(printers, v)
  47.     end
  48. end
  49. table.sort(printers)
  50. local printedFiles = 0
  51. local printed = {}
  52. local selectedPrinter
  53. if onePrinter then
  54.     selectedPrinter = ui.menu(printers, "Select Printer")
  55.     if not selectedPrinter then
  56.         print("Aborting.")
  57.         return
  58.     end
  59.     print("Printer: "..selectedPrinter)
  60. end
  61. for i = 1, #tArgs do
  62.     if not onePrinter then
  63.         selectedPrinter = ui.menu(printers, "Select Printer")
  64.     end
  65.     if not selectedPrinter then
  66.         print("Aborting.")
  67.     else
  68.         if not onePrinter then
  69.             print("Printer: "..selectedPrinter)
  70.         end
  71.         print(" >> "..tArgs[i])
  72.         if not fs.exists(tArgs[i]) then
  73.             printError(tArgs[i]..": file not found")
  74.             sleep(1.5)
  75.         else
  76.             local printer = peripheral.wrap(selectedPrinter)
  77.             local nPage = 0
  78.             if printer.getInkLevel() < 1 then
  79.                 printError(selectedPrinter.."Printer out of ink")
  80.                 sleep(2)
  81.             elseif printer.getPaperLevel() < 1 then
  82.                 printError(selectedPrinter..": out of paper")
  83.                 sleep(2)
  84.             end
  85.             local screenTerminal = term.current()
  86.             local printerTerminal = {
  87.                 getCursorPos = printer.getCursorPos,
  88.                 setCursorPos = printer.setCursorPos,
  89.                 getSize = printer.getPageSize,
  90.                 write = printer.write,
  91.             }
  92.             printerTerminal.scroll = function()
  93.                 if nPage == 1 then
  94.                     printer.setPageTitle( sName.." (page "..nPage..")" )           
  95.                 end
  96.                
  97.                 while not printer.newPage() do
  98.                     term.redirect( screenTerminal )
  99.                     if printer.getInkLevel() < 1 then
  100.                         printError(selectedPrinter..": out of ink, please refill")
  101.                     elseif printer.getPaperLevel() < 1 then
  102.                         printError(selectedPrinter..": out of paper, please refill")
  103.                     else
  104.                         printError(selectedPrinter..": output tray full, please empty")
  105.                     end
  106.                     term.redirect( printerTerminal )
  107.                     local timer = os.startTimer(0.5)
  108.                     sleep(0.5)
  109.                 end
  110.                 nPage = nPage + 1
  111.                 if nPage == 1 then
  112.                     printer.setPageTitle( tArgs[i] )
  113.                 else
  114.                     printer.setPageTitle( tArgs[i].." (page "..nPage..")" )
  115.                 end
  116.             end
  117.             term.redirect( printerTerminal )
  118.             local ok, error = pcall( function()
  119.                 term.scroll()
  120.                 local file = fs.open(tArgs[i], "r")
  121.                 print(file.readAll())
  122.                 file.close()
  123.             end )
  124.             term.redirect( screenTerminal )
  125.             if not ok then
  126.                 printError( error )
  127.             end
  128.             while not printer.endPage() do
  129.                 printError(selectedPrinter..": output tray full, please empty")
  130.                 sleep( 0.5 )
  131.             end
  132.         end
  133.     end
  134. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement