diff options
author | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-11-02 15:36:34 +0000 |
---|---|---|
committer | tilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-11-02 15:36:34 +0000 |
commit | bad99f6a2a8b852b5702716a1fcbf1f1e57889f3 (patch) | |
tree | 82187f5f410411b22b75b7f20c7c92463e6e5c92 /utils | |
parent | 91e1d7a423cae03ac35ae737392eae80ee20a217 (diff) |
Add pbx_lua as a method of doing extensions
Reported by: mnicholson
Patch by: mnicholson
Closes issue #11140
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@88250 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'utils')
-rwxr-xr-x | utils/build-extensions-conf.lua | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/utils/build-extensions-conf.lua b/utils/build-extensions-conf.lua new file mode 100755 index 000000000..a3f159def --- /dev/null +++ b/utils/build-extensions-conf.lua @@ -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 + |