build: remove some obsolete support scripts
[project/luci.git] / libs / uvl / luasrc / uvl / validation.lua
index 39f1527..25ac6dc 100644 (file)
@@ -14,38 +14,45 @@ $Id$
 
 ]]--
 
-module( "luci.uvl.validation", package.seeall )
+local os = require "os"
+local fs = require "nixio.fs"
+local sys = require "luci.sys"
+local ERR = require "luci.uvl.errors".error
 
-require("luci.fs")
-require("luci.sys")
+local ipairs, unpack, type, tostring = ipairs, unpack, type, tostring
 
+module "luci.uvl.validation"
 
 function _exec( bin, args )
        local cmd, output = "", nil
 
        for _, v in ipairs({ bin, unpack(args) }) do
-               cmd = cmd .. string.format("%q ",v):gsub("([%$`])","\\%1")
+               cmd = cmd .. ("%q " % v):gsub("([%$`])","\\%1")
        end
 
-       local tmpfile = "/tmp/uvl" .. luci.sys.uniqueid(8)
+       local tmpfile = "/tmp/uvl" .. sys.uniqueid(8)
        local retval  = os.execute( cmd .. " 1>" .. tmpfile .. " 2>" .. tmpfile )
 
-       if luci.fs.access(tmpfile) then
-               output = luci.fs.readfile(tmpfile)
-               luci.fs.unlink(tmpfile)
+       if fs.access(tmpfile) then
+               output = fs.readfile(tmpfile)
+               fs.unlink(tmpfile)
        end
 
        return retval, output
 end
 
 function check( self, object )
-       local item = object:option()
-
-       if item.validators then
-               for _, val in ipairs(item.validators) do
+       if object:scheme('validators') then
+               for _, val in ipairs(object:scheme('validators')) do
                        local ok, err = false, nil
+
+                       local values = object:value()
+                             values = type(values) == "table" and values or { values }
+
                        local args = {
-                               item.type, unpack(object.cref), item.datatype, object:value()
+                               object:scheme('type'), object:scheme('datatype'),
+                               object.cref[1], object.cref[2], object.cref[3] or '',
+                               unpack(values)
                        }
 
                        if type(val) == "function" then
@@ -56,7 +63,7 @@ function check( self, object )
                        end
 
                        if not ok then
-                               return false, err
+                               return false, ERR('SME_ERRVAL', object, {tostring(val), err})
                        end
                end
        end