* Added support for first-level controllers
authorSteven Barth <steven@midlink.org>
Sat, 24 May 2008 14:11:15 +0000 (14:11 +0000)
committerSteven Barth <steven@midlink.org>
Sat, 24 May 2008 14:11:15 +0000 (14:11 +0000)
* Added several posix functions to ffluci.fs
* Added ffluci.util.combine

core/src/dispatcher.lua
core/src/fs.lua
core/src/util.lua

index a05c8805cbd79c7921186f9089d8d7a48b0c98a5..e820a8864bb7a2387a0397bccc998f41e98e7ddd 100644 (file)
@@ -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
index 4639ac4a863ae1d6e28f4eba603b6d07b071089f..70962ba59d596c04cbaa8eb7340d079b12aa3869 100644 (file)
@@ -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
index 9e3c7f25e97e0c702aed25e05b0b79c96890eb54..c7dba31969d73d1f3921b6e88a7b4b1a69aa8130 100644 (file)
@@ -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