[Freeswitch-svn] [commit] r13142 - freeswitch/trunk/scripts/contrib/trixter
FreeSWITCH SVN
trixter at freeswitch.org
Fri Apr 24 21:43:42 PDT 2009
Author: trixter
Date: Fri Apr 24 23:43:42 2009
New Revision: 13142
Log:
This will create a modules.conf.xml from the build modules.conf. Ideal for a new build to uncomment
all modules you built and comment the ones you did not.
Added:
freeswitch/trunk/scripts/contrib/trixter/makemodconf.pl (contents, props changed)
Modified:
freeswitch/trunk/scripts/contrib/trixter/README
Modified: freeswitch/trunk/scripts/contrib/trixter/README
==============================================================================
--- freeswitch/trunk/scripts/contrib/trixter/README (original)
+++ freeswitch/trunk/scripts/contrib/trixter/README Fri Apr 24 23:43:42 2009
@@ -23,6 +23,11 @@
== FILE LIST ==
+makemodconf.pl
+ This will create a modules.conf.xml from the build modules.conf
+ ideal for a new build to uncomment all modules you built and comment
+ the ones you did not
+
validate-ivr.pl
Perl app that does not connect to FreeSWITCH[tm] in any way
but will walk through the IVR xml. This lets you debug them
Added: freeswitch/trunk/scripts/contrib/trixter/makemodconf.pl
==============================================================================
--- (empty file)
+++ freeswitch/trunk/scripts/contrib/trixter/makemodconf.pl Fri Apr 24 23:43:42 2009
@@ -0,0 +1,97 @@
+#!/usr/bin/perl
+# -*- mode:cperl; tab-width:4; c-basic-offset:4; c-indent-level:4; indent-tabs-mode:nil; -*-
+
+# Copyright (C) 2009, Bret McDanel <trixter AT 0xdecafbad.com>
+
+# I wanted an automated method to generate a modules.conf.xml based on the modules.conf
+# that you build the code from. This is ideal for new builds but not very useful
+# after that.
+
+# to run:
+# ./makemodconf.pl /usr/src/freeswitch/modules.conf > /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
+
+# this is for modules that are not directly loaded by modules.conf.xml
+my @exclude = (
+ '^mod_spidermonkey_.*$',
+ );
+
+# this is for things that have odd directory locations
+my %sectionfix = (
+ '../../libs/openzap' => 'endpoints'
+ );
+
+
+my %modules = ();
+
+sub trim($)
+ {
+ my $string = shift;
+ $string =~ s/^\s+//;
+ $string =~ s/\s+$//;
+ return $string;
+ }
+
+ sub is_excluded($)
+ {
+ my $modname = shift;
+ foreach my $regexp (@exclude) {
+ if($modname =~ /$regexp/) {
+ return 1;
+ }
+ }
+ return 0;
+ }
+
+ sub fix_section($)
+ {
+ my $section = shift;
+ if (exists $sectionfix{$section}) {
+ return $sectionfix{$section};
+ } else {
+ return $section;
+ }
+ }
+
+
+ if ($#ARGV != 0) {
+ print "Usage: $0 modules.conf\n";
+ exit;
+ }
+
+ my $infile = shift @ARGV;
+
+
+ open( INFILE, "< $infile" ) or die "Can't open $infile $!";
+
+ while( <INFILE> ) {
+ $_ = trim($_);
+
+ $_ =~ /^(#?)(.*)\/(.*)$/;
+
+ my $comment = $1;
+ my $section = fix_section($2);
+ my $modname = $3;
+
+
+ if(!is_excluded($modname)){
+ push (@{$modules{$section}},[$modname,$comment]);
+ }
+ }
+
+ print "<configuration name=\"modules.conf\" description=\"Modules\">\n";
+ print " <modules>\n";
+
+ foreach my $section (sort(keys %modules)) {
+ print "\n\t<!-- $section -->\n";
+ foreach (@{$modules{$section}}) {
+ my $comment = @$_[1];
+ my $modname = @$_[0];
+ if($comment eq "#") {
+ print "\t<!-- <load module=\"$modname\"/> -->\n";
+ } else {
+ print "\t<load module=\"$modname\"/>\n";
+ }
+ }
+ }
+ print " </modules>\n";
+ print "</configuration>\n";
More information about the Freeswitch-svn
mailing list