mirror of https://github.com/Hilbis/Hilbish
feat: Proxy global string variables to ENV (#16)
parent
ad1be6b5f5
commit
6c050194ed
36
preload.lua
36
preload.lua
|
@ -25,3 +25,39 @@ commander.register('cd', function (args)
|
||||||
fs.cd(os.getenv 'HOME')
|
fs.cd(os.getenv 'HOME')
|
||||||
bait.throw('command.success', nil)
|
bait.throw('command.success', nil)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
do
|
||||||
|
local virt_G = { }
|
||||||
|
|
||||||
|
setmetatable(_G, {
|
||||||
|
__index = function (self, key)
|
||||||
|
local got_virt = virt_G[key]
|
||||||
|
if got_virt ~= nil then
|
||||||
|
return got_virt
|
||||||
|
end
|
||||||
|
|
||||||
|
virt_G[key] = os.getenv(key)
|
||||||
|
return virt_G[key]
|
||||||
|
end,
|
||||||
|
|
||||||
|
__newindex = function (self, key, value)
|
||||||
|
if type(value) == 'string' then
|
||||||
|
os.setenv(key, value)
|
||||||
|
virt_G[key] = value
|
||||||
|
else
|
||||||
|
if type(virt_G[key]) == 'string' then
|
||||||
|
os.setenv(key, '')
|
||||||
|
end
|
||||||
|
virt_G[key] = value
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
bait.catch('command.exit', function ()
|
||||||
|
for key, value in pairs(virt_G) do
|
||||||
|
if type(value) == 'string' then
|
||||||
|
virt_G[key] = os.getenv(key)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue