mirror of https://github.com/Hilbis/Hilbish
fix!: get/set env variables via env table
this removes the old "virtual global table" which allows getting environment variables via just their names in lua. this means: an environment variable (like TERM) would need to be accessed via the `env` table instead of just using TERM in lua. `TERM` -> `env.TERM` they can also be set via `env.VARIABLE = 'value'env-table
parent
d46c079afb
commit
a24bca3258
|
@ -0,0 +1,10 @@
|
|||
env = {}
|
||||
|
||||
setmetatable(env, {
|
||||
__index = function(_, k)
|
||||
return os.getenv(k)
|
||||
end,
|
||||
__newindex = function(_, k, v)
|
||||
os.setenv(k, tostring(v))
|
||||
end
|
||||
})
|
|
@ -24,6 +24,7 @@ require 'nature.opts'
|
|||
require 'nature.vim'
|
||||
require 'nature.runner'
|
||||
require 'nature.hummingbird'
|
||||
require 'nature.env'
|
||||
|
||||
local shlvl = tonumber(os.getenv 'SHLVL')
|
||||
if shlvl ~= nil then
|
||||
|
@ -32,36 +33,6 @@ else
|
|||
os.setenv('SHLVL', '0')
|
||||
end
|
||||
|
||||
do
|
||||
local virt_G = { }
|
||||
|
||||
setmetatable(_G, {
|
||||
__index = function (_, key)
|
||||
local got_virt = virt_G[key]
|
||||
if got_virt ~= nil then
|
||||
return got_virt
|
||||
end
|
||||
|
||||
if type(key) == 'string' then
|
||||
virt_G[key] = os.getenv(key)
|
||||
end
|
||||
return virt_G[key]
|
||||
end,
|
||||
|
||||
__newindex = function (_, 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,
|
||||
})
|
||||
end
|
||||
|
||||
do
|
||||
local startSearchPath = hilbish.userDir.data .. '/hilbish/start/?/init.lua;'
|
||||
.. hilbish.userDir.data .. '/hilbish/start/?.lua'
|
||||
|
|
Loading…
Reference in New Issue