2
2
mirror of https://github.com/Hilbis/Hilbish synced 2025-05-10 22:33:22 +00:00

feat: Proxy global string variables to ENV

This commit is contained in:
Jack Johannesen 2021-04-03 16:00:35 -04:00
parent ad1be6b5f5
commit f42a1898d7

View File

@ -25,3 +25,39 @@ commander.register('cd', function (args)
fs.cd(os.getenv 'HOME')
bait.throw('command.success', nil)
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