libs/cbi: fix error reporting in map loading
authorJo-Philipp Wich <jow@openwrt.org>
Fri, 31 Jul 2009 00:13:24 +0000 (00:13 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Fri, 31 Jul 2009 00:13:24 +0000 (00:13 +0000)
libs/cbi/luasrc/cbi.lua

index db76e3b..83f5c27 100644 (file)
@@ -60,17 +60,18 @@ function load(cbimap, ...)
 
        local upldir = "/lib/uci/upload/"
        local cbidir = luci.util.libpath() .. "/model/cbi/"
-
-       assert(fs.stat(cbimap) or
-               fs.stat(cbidir..cbimap..".lua") or
-               fs.stat(cbidir..cbimap..".lua.gz"),
-                       "Model not found!")
-
-       local func, err = loadfile(cbimap)
-       if not func then
-               func, err = loadfile(cbidir..cbimap..".lua") or
-                       loadfile(cbidir..cbimap..".lua.gz")
+       local func, err
+
+       if fs.access(cbimap) then
+               func, err = loadfile(cbimap)
+       elseif fs.access(cbidir..cbimap..".lua") then
+               func, err = loadfile(cbidir..cbimap..".lua")
+       elseif fs.access(cbidir..cbimap..".lua.gz") then
+               func, err = loadfile(cbidir..cbimap..".lua.gz")
+       else
+               func, err = nil, "Model '" .. cbimap .. "' not found!"
        end
+
        assert(func, err)
 
        luci.i18n.loadc("cbi")