trunk: prepare LuCI to handle .lua.gz files
This commit is contained in:
parent
f3deef9ec5
commit
9835296ba2
5 changed files with 41 additions and 18 deletions
|
@ -59,12 +59,15 @@ function load(cbimap, ...)
|
|||
local upldir = "/lib/uci/upload/"
|
||||
local cbidir = luci.util.libpath() .. "/model/cbi/"
|
||||
|
||||
assert(luci.fs.stat(cbimap) or luci.fs.stat(cbidir..cbimap..".lua"),
|
||||
"Model not found!")
|
||||
assert(luci.fs.stat(cbimap) or
|
||||
luci.fs.stat(cbidir..cbimap..".lua") or
|
||||
luci.fs.stat(cbidir..cbimap..".lua.gz"),
|
||||
"Model not found!")
|
||||
|
||||
local func, err = loadfile(cbimap)
|
||||
if not func then
|
||||
func, err = loadfile(cbidir..cbimap..".lua")
|
||||
func, err = loadfile(cbidir..cbimap..".lua") or
|
||||
loadfile(cbidir..cbimap..".lua.gz")
|
||||
end
|
||||
assert(func, err)
|
||||
|
||||
|
|
|
@ -355,7 +355,7 @@ end
|
|||
--- Generate the dispatching index using the best possible strategy.
|
||||
function createindex()
|
||||
local path = luci.util.libpath() .. "/controller/"
|
||||
local suff = ".lua"
|
||||
local suff = { ".lua", ".lua.gz" }
|
||||
|
||||
if luci.util.copcall(require, "luci.fastindex") then
|
||||
createindex_fastindex(path, suff)
|
||||
|
@ -366,14 +366,16 @@ end
|
|||
|
||||
--- Generate the dispatching index using the fastindex C-indexer.
|
||||
-- @param path Controller base directory
|
||||
-- @param suffix Controller file suffix
|
||||
function createindex_fastindex(path, suffix)
|
||||
-- @param suffixes Controller file suffixes
|
||||
function createindex_fastindex(path, suffixes)
|
||||
index = {}
|
||||
|
||||
if not fi then
|
||||
fi = luci.fastindex.new("index")
|
||||
fi.add(path .. "*" .. suffix)
|
||||
fi.add(path .. "*/*" .. suffix)
|
||||
for _, suffix in ipairs(suffixes) do
|
||||
fi.add(path .. "*" .. suffix)
|
||||
fi.add(path .. "*/*" .. suffix)
|
||||
end
|
||||
end
|
||||
fi.scan()
|
||||
|
||||
|
@ -384,12 +386,16 @@ end
|
|||
|
||||
--- Generate the dispatching index using the native file-cache based strategy.
|
||||
-- @param path Controller base directory
|
||||
-- @param suffix Controller file suffix
|
||||
function createindex_plain(path, suffix)
|
||||
local controllers = util.combine(
|
||||
luci.fs.glob(path .. "*" .. suffix) or {},
|
||||
luci.fs.glob(path .. "*/*" .. suffix) or {}
|
||||
)
|
||||
-- @param suffixes Controller file suffixes
|
||||
function createindex_plain(path, suffixes)
|
||||
local controllers = { }
|
||||
for _, suffix in ipairs(suffixes) do
|
||||
util.combine(
|
||||
controllers,
|
||||
luci.fs.glob(path .. "*" .. suffix) or {},
|
||||
luci.fs.glob(path .. "*/*" .. suffix) or {}
|
||||
)
|
||||
end
|
||||
|
||||
if indexcache then
|
||||
local cachedate = fs.mtime(indexcache)
|
||||
|
@ -416,7 +422,11 @@ function createindex_plain(path, suffix)
|
|||
index = {}
|
||||
|
||||
for i,c in ipairs(controllers) do
|
||||
local module = "luci.controller." .. c:sub(#path+1, #c-#suffix):gsub("/", ".")
|
||||
local module = "luci.controller." .. c:sub(#path+1, #c):gsub("/", ".")
|
||||
for _, suffix in ipairs(suffixes) do
|
||||
module = module:gsub(suffix.."$", "")
|
||||
end
|
||||
|
||||
local mod = require(module)
|
||||
local idx = mod.index
|
||||
|
||||
|
|
|
@ -47,7 +47,9 @@ end
|
|||
function load(file, lang, force)
|
||||
lang = lang and lang:gsub("_", "-") or ""
|
||||
if force or not loaded[lang] or not loaded[lang][file] then
|
||||
local f = loadfile(i18ndir .. file .. "." .. lang .. ".lua")
|
||||
local f = loadfile(i18ndir .. file .. "." .. lang .. ".lua") or
|
||||
loadfile(i18ndir .. file .. "." .. lang .. ".lua.gz")
|
||||
|
||||
if f then
|
||||
table[lang] = table[lang] or {}
|
||||
setfenv(f, table[lang])
|
||||
|
|
|
@ -29,7 +29,11 @@ l:value("auto")
|
|||
|
||||
local i18ndir = luci.i18n.i18ndir .. "default."
|
||||
for k, v in pairs(luci.config.languages) do
|
||||
if k:sub(1, 1) ~= "." and luci.fs.access(i18ndir .. k:gsub("_", "-") .. ".lua") then
|
||||
local file = i18ndir .. k:gsub("_", "-")
|
||||
if k:sub(1, 1) ~= "." and (
|
||||
luci.fs.access(file .. ".lua") or
|
||||
luci.fs.access(file .. ".lua.gz")
|
||||
) then
|
||||
l:value(k, v)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -29,7 +29,11 @@ l:value("auto")
|
|||
|
||||
local i18ndir = luci.i18n.i18ndir .. "default."
|
||||
for k, v in pairs(luci.config.languages) do
|
||||
if k:sub(1, 1) ~= "." and luci.fs.access(i18ndir .. k:gsub("_", "-") .. ".lua") then
|
||||
local file = i18ndir .. k:gsub("_", "-")
|
||||
if k:sub(1, 1) ~= "." and (
|
||||
luci.fs.access(file .. ".lua") or
|
||||
luci.fs.access(file .. ".lua.gz")
|
||||
) then
|
||||
l:value(k, v)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue