mirror of https://github.com/asterisk/asterisk
82 lines
2.0 KiB
82 lines
2.0 KiB
#!/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
|
|
|