mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-26 22:30:28 +00:00 
			
		
		
		
	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
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Lua
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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
 | |
| 
 |