dotfiles from arch
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
local function mergeKey(key, k)
|
||||
if not key then
|
||||
return k
|
||||
end
|
||||
if k:sub(1, 1):match '%w' then
|
||||
return key .. '.' .. k
|
||||
else
|
||||
return key .. k
|
||||
end
|
||||
end
|
||||
|
||||
local function proxy(results, key)
|
||||
return setmetatable({}, {
|
||||
__index = function (_, k)
|
||||
return proxy(results, mergeKey(key, k))
|
||||
end,
|
||||
__newindex = function (_, k, v)
|
||||
results[mergeKey(key, k)] = v
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
return function (text, path, results)
|
||||
results = results or {}
|
||||
assert(load(text, '@' .. path, "t", proxy(results)))()
|
||||
return results
|
||||
end
|
||||
Reference in New Issue
Block a user