From 427dd0bd1dcaf081b21be96d6f0e73d542dd2f08 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Sat, 24 May 2008 14:11:15 +0000 Subject: [PATCH] * Added support for first-level controllers * Added several posix functions to ffluci.fs * Added ffluci.util.combine --- core/src/dispatcher.lua | 10 ++++++++-- core/src/fs.lua | 14 +++++++++++++- core/src/util.lua | 12 ++++++++++++ 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/core/src/dispatcher.lua b/core/src/dispatcher.lua index a05c8805cb..e820a8864b 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 4639ac4a86..70962ba59d 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 9e3c7f25e9..c7dba31969 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 -- 2.30.2