Advertisement
Guest User

02_os.lua

a guest
Feb 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.70 KB | None | 0 0
  1. local computer = require("computer")
  2. local event = require("event")
  3. local fs = require("filesystem")
  4. local shell = require("shell")
  5. local unicode = require("unicode")
  6. local process = require("process")
  7.  
  8. local function env()
  9.   return process.info().data.vars
  10. end
  11.  
  12. os.execute = function(command)
  13.   if not command then
  14.     return type(shell) == "table"
  15.   end
  16.   return shell.execute(command)
  17. end
  18.  
  19. function os.exit(code)
  20.   error({reason="terminated", code=code}, 0)
  21. end
  22.  
  23. function os.getenv(varname)
  24.   if varname == '#' then
  25.     return #env()
  26.   elseif varname ~= nil then
  27.     return env()[varname]
  28.   else
  29.     return env()
  30.   end
  31. end
  32.  
  33. function os.setenv(varname, value)
  34.   checkArg(1, varname, "string", "number")
  35.   if value == nil then
  36.     env()[varname] = nil
  37.   else
  38.     local success, val = pcall(tostring, value)
  39.     if success then
  40.       env()[varname] = val
  41.       return env()[varname]
  42.     else
  43.       return nil, val
  44.     end
  45.   end
  46. end
  47.  
  48. function os.remove(...)
  49.   return fs.remove(...)
  50. end
  51.  
  52. function os.rename(...)
  53.   return fs.rename(...)
  54. end
  55.  
  56. function os.sleep(timeout)
  57.   checkArg(1, timeout, "number", "nil")
  58.   local deadline = computer.uptime() + (timeout or 0)
  59.   repeat
  60.     event.pull(deadline - computer.uptime())
  61.   until computer.uptime() >= deadline
  62. end
  63.  
  64. function os.tmpname()
  65.   local path = os.getenv("TMPDIR") or "/tmp"
  66.   if fs.exists(path) then
  67.     for i = 1, 10 do
  68.       local name = fs.concat(path, tostring(math.random(1, 0x7FFFFFFF)))
  69.       if not fs.exists(name) then
  70.         return name
  71.       end
  72.     end
  73.   end
  74. end
  75.  
  76. os.setenv("PATH", "/bin:/usr/bin:/home/bin:.")
  77. os.setenv("TMP", "/tmp") -- Deprecated
  78. os.setenv("TMPDIR", "/tmp")
  79.  
  80. if computer.tmpAddress() then
  81.   fs.mount(computer.tmpAddress(), os.getenv("TMPDIR") or "/tmp")
  82. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement