|
|
@@ -1,6 +1,7 @@ |
|
|
|
local serial = require "serialization" |
|
|
|
|
|
|
|
local rc = {} |
|
|
|
rc.paths = "/boot/service\n/pkg/service" |
|
|
|
rc.pids = {} |
|
|
|
local service = {} |
|
|
|
local cfg = {} |
|
|
@@ -23,6 +24,21 @@ local function saveConfig() |
|
|
|
end |
|
|
|
|
|
|
|
function rc.load(name,force) -- string boolean -- table -- Attempts to load service *name*, and if *force* is true, replaces the current instance. |
|
|
|
if not package.loaded[name] or force then |
|
|
|
for d in rc.paths:gmatch("[^\n]+") do |
|
|
|
if fs.exists(d.."/"..name..".lua") then |
|
|
|
service[name] = runfile(d.."/"..name..".lua") |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
if service[name] then |
|
|
|
return service[name] |
|
|
|
end |
|
|
|
return false, "unable to load service "..name |
|
|
|
end |
|
|
|
|
|
|
|
--[[ |
|
|
|
function rc.load(name,force) -- string boolean -- table -- Attempts to load service *name*, and if *force* is true, replaces the current instance. |
|
|
|
if force then |
|
|
|
rc.stop(name) |
|
|
|
service[name] = nil |
|
|
@@ -39,6 +55,7 @@ function rc.load(name,force) -- string boolean -- table -- Attempts to load serv |
|
|
|
f:close() |
|
|
|
return res |
|
|
|
end |
|
|
|
]] |
|
|
|
|
|
|
|
function rc.stop(name,...) -- string -- boolean string -- Stops service *name*, supplying *...* to the stop function. Returns false and a reason if this fails. |
|
|
|
if not service[name] then return false, "service not found" end |
|
|
|