56 lines
1.3 KiB
Lua
56 lines
1.3 KiB
Lua
#!/usr/bin/env lua
|
|
--------------------------------------------------------------------------------
|
|
-- @script OiL Naming Service Daemon
|
|
-- @version 1.1
|
|
-- @author Renato Maia <maia@tecgraf.puc-rio.br>
|
|
--
|
|
print("OiL Naming Service 1.1 Copyright (C) 2006-2008 Tecgraf, PUC-Rio")
|
|
|
|
local select = select
|
|
local io = require "io"
|
|
local os = require "os"
|
|
local oil = require "oil"
|
|
local naming = require "oil.corba.services.naming"
|
|
|
|
module("oil.corba.services.nsd", require "loop.compiler.Arguments")
|
|
_optpat = "^%-%-(%w+)(=?)(.-)$"
|
|
verb = 0
|
|
port = 0
|
|
ior = ""
|
|
ir = ""
|
|
function log(optlist, optname, optvalue)
|
|
local file, errmsg = io.open(optvalue, "w")
|
|
if file
|
|
then oil.verbose:output(file)
|
|
else return errmsg
|
|
end
|
|
end
|
|
|
|
local argidx, errmsg = _M(...)
|
|
if not argidx or argidx <= select("#", ...) then
|
|
if errmsg then io.stderr:write("ERROR: ", errmsg, "\n") end
|
|
io.stderr:write([[
|
|
Usage: nsd.lua [options]
|
|
Options:
|
|
--verb <level>
|
|
--log <file>
|
|
--ior <file>
|
|
--port <number>
|
|
--ir <objref>
|
|
|
|
]])
|
|
os.exit(1)
|
|
end
|
|
|
|
oil.main(function()
|
|
oil.verbose:level(verb)
|
|
local orb = (port > 0) and oil.init{port=port} or oil.init()
|
|
if ir ~= ""
|
|
then orb:setIR(orb:narrow(orb:newproxy(ir)))
|
|
else orb:loadidlfile("CosNaming.idl")
|
|
end
|
|
ns = orb:newservant(naming.new())
|
|
if ior ~= "" then oil.writeto(ior, orb:tostring(ns)) end
|
|
orb:run()
|
|
end)
|