X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=blobdiff_plain;f=libs%2Fuvl%2Fluasrc%2Fuvl%2Fdependencies.lua;h=33f2fad9fcffaf447a2d312062ab09ce4dbec932;hp=ed5770f2354ecfcc8a6677880d6306e04c80c99a;hb=800a2630497e1ec2c61199b3bc645d778c714529;hpb=9890c99d0bb4cefbf134c265888fbe60fea42c8c diff --git a/libs/uvl/luasrc/uvl/dependencies.lua b/libs/uvl/luasrc/uvl/dependencies.lua index ed5770f23..33f2fad9f 100644 --- a/libs/uvl/luasrc/uvl/dependencies.lua +++ b/libs/uvl/luasrc/uvl/dependencies.lua @@ -14,9 +14,17 @@ $Id$ ]]-- -module( "luci.uvl.dependencies", package.seeall ) +local uvl = require "luci.uvl" +local ERR = require "luci.uvl.errors".error +local util = require "luci.util" +local table = require "table" + +local type, unpack = type, unpack +local ipairs, pairs = ipairs, pairs + +module "luci.uvl.dependencies" + -local ERR = luci.uvl.errors function _parse_reference( r, c, s, o ) local ref = { } @@ -27,7 +35,7 @@ function _parse_reference( r, c, s, o ) } for v in r:gmatch("[^.]+") do - table.insert(ref, (v:gsub( "%$(.+)", vars ))) + ref[#ref+1] = (v:gsub( "%$(.+)", vars )) end if #ref < 2 then @@ -43,7 +51,7 @@ end function _serialize_dependency( dep, v ) local str - for k, v in luci.util.spairs( dep, + for k, v in util.spairs( dep, function(a,b) a = ( type(dep[a]) ~= "boolean" and "_" or "" ) .. a b = ( type(dep[b]) ~= "boolean" and "_" or "" ) .. b @@ -59,12 +67,12 @@ end function check( self, object, nodeps ) - local derr = ERR.DEPENDENCY(object) + local derr = ERR('DEPENDENCY', object) if not self.depseen[object:cid()] then self.depseen[object:cid()] = true else - return false, derr:child(ERR.DEP_RECURSIVE(object)) + return false, derr:child(ERR('DEP_RECURSIVE', object)) end if object:scheme('depends') then @@ -78,10 +86,10 @@ function check( self, object, nodeps ) local ref = _parse_reference( k, unpack(object.cref) ) if not ref then - return false, derr:child(ERR.SME_BADDEP(object,k)) + return false, derr:child(ERR('SME_BADDEP',object,k)) end - local option = luci.uvl.option( self, object.c, unpack(ref) ) + local option = uvl.option( self, object.c, unpack(ref) ) valid, err = self:_validate_option( option, true ) if valid then @@ -94,8 +102,8 @@ function check( self, object, nodeps ) local depstr = _serialize_dependency( dep, v ) derr:child( type(v) == "boolean" - and ERR.DEP_NOVALUE(option, depstr) - or ERR.DEP_NOTEQUAL(option, {depstr, v}) + and ERR('DEP_NOVALUE', option, depstr) + or ERR('DEP_NOTEQUAL', option, {depstr, v}) ) break @@ -104,7 +112,7 @@ function check( self, object, nodeps ) subcondition = false local depstr = _serialize_dependency( dep, v ) - derr:child(ERR.DEP_NOTVALID(option, depstr):child(err)) + derr:child(ERR('DEP_NOTVALID', option, depstr):child(err)) break end @@ -131,7 +139,7 @@ function check( self, object, nodeps ) local ok = true local valid = false local enum = object:enum() - local eerr = ERR.DEP_BADENUM(enum) + local eerr = ERR('DEP_BADENUM', enum) for _, dep in ipairs(enum:scheme('enum_depends')[object:value()]) do local subcondition = true @@ -140,7 +148,7 @@ function check( self, object, nodeps ) local ref = _parse_reference( k, unpack(object.cref) ) if not ref then - return false, derr:child(eerr:child(ERR.SME_BADDEP(enum,k))) + return false, derr:child(eerr:child(ERR('SME_BADDEP',enum,k))) end local option = luci.uvl.option( self, object.c, unpack(ref) ) @@ -156,8 +164,8 @@ function check( self, object, nodeps ) local depstr = _serialize_dependency( dep, v ) eerr:child( type(v) == "boolean" - and ERR.DEP_NOVALUE(option, depstr) - or ERR.DEP_NOTEQUAL(option, {depstr, v}) + and ERR('DEP_NOVALUE', option, depstr) + or ERR('DEP_NOTEQUAL', option, {depstr, v}) ) break @@ -166,7 +174,7 @@ function check( self, object, nodeps ) subcondition = false local depstr = _serialize_dependency( dep, v ) - eerr:child(ERR.DEP_NOTVALID(option, depstr):child(err)) + eerr:child(ERR('DEP_NOTVALID', option, depstr):child(err)) break end