*** empty log message ***
parent
db85bdacb5
commit
aaef3303e0
@ -0,0 +1,15 @@
|
|||||||
|
-- environment
|
||||||
|
os.environ
|
||||||
|
os.setenv(name, value, overwrite)
|
||||||
|
os.unsetenv(name)
|
||||||
|
|
||||||
|
-- miscellaneous
|
||||||
|
os.sleep(seconds)
|
||||||
|
|
||||||
|
-- file system
|
||||||
|
os.dir
|
||||||
|
file = os.file
|
||||||
|
|
||||||
|
-- process control
|
||||||
|
pid = os.spawn(filename, {args={}, env={}, stdin=io_file, stdout=io_file, stderr=io_file})
|
||||||
|
exitcode = os.wait(pid)
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
local getmetatable, setmetatable = getmetatable, setmetatable
|
||||||
|
local rawget, rawset, type = rawget, rawset, type
|
||||||
|
local getenv, setenv, unsetenv = os.getenv, os.setenv, os.unsetenv
|
||||||
|
|
||||||
|
local mt = getmetatable(os)
|
||||||
|
if not mt then
|
||||||
|
mt = {}
|
||||||
|
setmetatable(os, mt)
|
||||||
|
end
|
||||||
|
module "os"
|
||||||
|
|
||||||
|
-- metatable for os
|
||||||
|
function mt:__index(k)
|
||||||
|
if k == "environ" then
|
||||||
|
local environ = {}
|
||||||
|
-- This function needs to be written in C.
|
||||||
|
for k,v in getenvs() do
|
||||||
|
e[k] = v
|
||||||
|
end
|
||||||
|
rawset(os, "environ", environ)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- metatable for os.environ
|
||||||
|
mt = {}
|
||||||
|
function mt:__newindex(name, value)
|
||||||
|
if type(name) ~= "string" then
|
||||||
|
error("Expected a string key", 2)
|
||||||
|
end
|
||||||
|
if value == nil then
|
||||||
|
unsetenv(name)
|
||||||
|
elseif typeof(value) == "string" then
|
||||||
|
setenv(name, value, true)
|
||||||
|
else
|
||||||
|
error("Expected a string value", 2)
|
||||||
|
end
|
||||||
|
rawset(self,name,value)
|
||||||
|
end
|
||||||
|
environ = setmetatable({}, e)
|
||||||
Loading…
Reference in New Issue