Fabrimat

Compile.lua

Oct 4th, 2020
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ----
  2. --Original compile and run source code developed by Pharap
  3. --http://www.computercraft.info/forums2/index.php?/user/3218-pharap/
  4. --
  5. --The original source can be found here:
  6. --Compile.lua: http://pastebin.com/S520NYMV
  7. --Run.lua: http://pastebin.com/xjBgXmfy
  8. ---
  9.  
  10. --Argument Checking--
  11. local args = {...}
  12. if(#args<2)then error("Need two arguments",0) end
  13. if(not fs.exists(args[1]))then error("Invalid filename",0) end
  14.  
  15. --Functionality--
  16. local function compile(inFile,outFile)
  17.     local file = fs.open(inFile,"r")
  18.     local dump = string.dump(loadstring(file.readAll()))
  19.     file.close()
  20.     file = fs.open(outFile,"wb")
  21.     local clock = os.clock() + 4.5
  22.     for i = 1,#dump do
  23.         file.write(string.byte(dump:sub(i,i)))
  24.         if(os.clock()>=clock)then
  25.             os.queueEvent"" -- Prevents 5 second loop.
  26.             coroutine.yield() -- Suggested by pingoleon60 and theoriginalbit
  27.             clock = os.clock() + 4.5
  28.         end
  29.     end
  30.     file.close()
  31. end
  32.  
  33. compile(args[1],args[2])
Add Comment
Please, Sign In to add comment