From: Steven Barth Date: Sat, 24 May 2008 14:11:15 +0000 (+0000) Subject: * Added support for first-level controllers X-Git-Tag: 0.8.0~1003 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=427dd0bd1dcaf081b21be96d6f0e73d542dd2f08;p=oweals%2Fluci.git * Added support for first-level controllers * Added several posix functions to ffluci.fs * Added ffluci.util.combine --- diff --git a/core/src/dispatcher.lua b/core/src/dispatcher.lua index a05c8805c..e820a8864 100644 --- a/core/src/dispatcher.lua +++ b/core/src/dispatcher.lua @@ -126,8 +126,14 @@ end function createindex() local root = ffluci.sys.libpath() .. "/controller/" local suff = ".lua" - for i,c in ipairs(ffluci.fs.glob(root .. "*/*" .. suff)) do - c = "ffluci.controller." .. c:sub(#root+1, #c-#suff):gsub("/", ".", 1) + + local controllers = ffluci.util.combine( + ffluci.fs.glob(root .. "*" .. suff), + ffluci.fs.glob(root .. "*/*" .. suff) + ) + + for i,c in ipairs(controllers) do + c = "ffluci.controller." .. c:sub(#root+1, #c-#suff):gsub("/", ".") stat, mod = pcall(require, c) if stat and mod and type(mod.index) == "function" then diff --git a/core/src/fs.lua b/core/src/fs.lua index 4639ac4a8..70962ba59 100644 --- a/core/src/fs.lua +++ b/core/src/fs.lua @@ -83,4 +83,16 @@ dir = posix.dir mkdir = posix.mkdir -- Alias for posix.rmdir -rmdir = posix.rmdir \ No newline at end of file +rmdir = posix.rmdir + +-- Alias for posix.stat +stat = posix.stat + +-- Alias for posix.chmod +chmod = posix.chmod + +-- Alias for posix.link +link = posix.link + +-- Alias for posix.unlink +unlink = posix.unlink \ No newline at end of file diff --git a/core/src/util.lua b/core/src/util.lua index 9e3c7f25e..c7dba3196 100644 --- a/core/src/util.lua +++ b/core/src/util.lua @@ -73,6 +73,18 @@ function clone(object, deep) end +-- Combines two or more numerically indexed tables into one +function combine(...) + local result = {} + for i, a in ipairs(arg) do + for j, v in ipairs(a) do + table.insert(result, v) + end + end + return result +end + + -- Checks whether a table has an object "value" in it function contains(table, value) for k,v in pairs(table) do