mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
Add pbx_lua as a method of doing extensions
Reported by: mnicholson Patch by: mnicholson Closes issue #11140 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88250 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
81
utils/build-extensions-conf.lua
Executable file
81
utils/build-extensions-conf.lua
Executable file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env lua
|
||||
--[[
|
||||
|
||||
This utility can be used to generate an extensions.conf file to match an
|
||||
existing extensions.lua file. As an argument it takes the patch of the
|
||||
extensions.lua file to read from, otherwise it uses
|
||||
/etc/asterisk/extensions.lua.
|
||||
|
||||
This script can also be used to automatically include extensions.lua in
|
||||
extensions.conf via a #exec as well.
|
||||
|
||||
#exec /usr/bin/build-extensions-conf.lua -c
|
||||
|
||||
--]]
|
||||
|
||||
usage = [[
|
||||
|
||||
Usage:
|
||||
]] .. arg[0] .. [[ [options] [extensions.lua path]
|
||||
|
||||
This utility can generate an extensions.conf file with all of the contexts in
|
||||
your extensions.lua file defined as including the Lua switch. This is useful
|
||||
if you want to use your extensions.lua file exclusively. By using this utility
|
||||
you dont't have to create each extension in extensions.conf manually.
|
||||
|
||||
The resulting extensions.conf file is printed to standard output.
|
||||
|
||||
--contexts-only, -c Don't print the [global] or [general] sections. This
|
||||
is useful for including the generated file into an
|
||||
existing extensions.conf via #include or #exec.
|
||||
|
||||
--help, -h Print this message.
|
||||
|
||||
]]
|
||||
|
||||
extensions_file = "/etc/asterisk/extensions.lua"
|
||||
|
||||
options = {}
|
||||
|
||||
for k, v in ipairs(arg) do
|
||||
if v:sub(1, 1) == "-" then
|
||||
if v == "-h" or v == "--help" then
|
||||
print("match")
|
||||
options["help"] = true
|
||||
elseif v == "-c" or v == "--contexts-only" then
|
||||
options["contexts-only"] = true
|
||||
end
|
||||
else
|
||||
options["extensions-file"] = v
|
||||
end
|
||||
end
|
||||
|
||||
if options["help"] then
|
||||
io.stderr:write(usage)
|
||||
os.exit(0)
|
||||
end
|
||||
|
||||
if options["extensions-file"] then
|
||||
extensions_file = options["extensions-file"]
|
||||
end
|
||||
|
||||
result, error_message = pcall(dofile, extensions_file)
|
||||
|
||||
if not result then
|
||||
io.stderr:write(error_message .. "\n")
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
if not extensions then
|
||||
io.stderr:write("Error: extensions table not found in '" .. extensions_file .. "'\n")
|
||||
os.exit(1)
|
||||
end
|
||||
|
||||
if not options["contexts-only"] then
|
||||
io.stdout:write("[general]\n\n[globals]\n\n")
|
||||
end
|
||||
|
||||
for context, extens in pairs(extensions) do
|
||||
io.stdout:write("[" .. tostring(context) .. "]\nswitch => Lua\n\n")
|
||||
end
|
||||
|
Reference in New Issue
Block a user