libs/sys: introduce luci.sys.init.start() and luci.sys.init.stop(), also execute all init action with an empty environment
This commit is contained in:
parent
7fdb055265
commit
4711c01509
1 changed files with 32 additions and 18 deletions
|
@ -790,41 +790,55 @@ function init.names()
|
||||||
return names
|
return names
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Test whether the given init script is enabled
|
|
||||||
-- @param name Name of the init script
|
|
||||||
-- @return Boolean indicating whether init is enabled
|
|
||||||
function init.enabled(name)
|
|
||||||
if fs.access(init.dir..name) then
|
|
||||||
return ( call(init.dir..name.." enabled >/dev/null") == 0 )
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
--- Get the index of he given init script
|
--- Get the index of he given init script
|
||||||
-- @param name Name of the init script
|
-- @param name Name of the init script
|
||||||
-- @return Numeric index value
|
-- @return Numeric index value
|
||||||
function init.index(name)
|
function init.index(name)
|
||||||
if fs.access(init.dir..name) then
|
if fs.access(init.dir..name) then
|
||||||
return call("source "..init.dir..name.." enabled >/dev/null; exit $START")
|
return call("env -i sh -c 'source %s%s; exit $START' >/dev/null"
|
||||||
|
%{ init.dir, name })
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function init_action(action, name)
|
||||||
|
if fs.access(init.dir..name) then
|
||||||
|
return call("env -i %s%s %s >/dev/null" %{ init.dir, name, action })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Test whether the given init script is enabled
|
||||||
|
-- @param name Name of the init script
|
||||||
|
-- @return Boolean indicating whether init is enabled
|
||||||
|
function init.enabled(name)
|
||||||
|
return (init_action("enabled", name) == 0)
|
||||||
|
end
|
||||||
|
|
||||||
--- Enable the given init script
|
--- Enable the given init script
|
||||||
-- @param name Name of the init script
|
-- @param name Name of the init script
|
||||||
-- @return Boolean indicating success
|
-- @return Boolean indicating success
|
||||||
function init.enable(name)
|
function init.enable(name)
|
||||||
if fs.access(init.dir..name) then
|
return (init_action("enable", name) == 1)
|
||||||
return ( call(init.dir..name.." enable >/dev/null") == 1 )
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Disable the given init script
|
--- Disable the given init script
|
||||||
-- @param name Name of the init script
|
-- @param name Name of the init script
|
||||||
-- @return Boolean indicating success
|
-- @return Boolean indicating success
|
||||||
function init.disable(name)
|
function init.disable(name)
|
||||||
if fs.access(init.dir..name) then
|
return (init_action("disable", name) == 0)
|
||||||
return ( call(init.dir..name.." disable >/dev/null") == 0 )
|
end
|
||||||
end
|
|
||||||
|
--- Start the given init script
|
||||||
|
-- @param name Name of the init script
|
||||||
|
-- @return Boolean indicating success
|
||||||
|
function init.start(name)
|
||||||
|
return (init_action("start", name) == 0)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Stop the given init script
|
||||||
|
-- @param name Name of the init script
|
||||||
|
-- @return Boolean indicating success
|
||||||
|
function init.stop(name)
|
||||||
|
return (init_action("stop", name) == 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue