Chris Coulthurst wrote:
I swear I read somewhere on one of the MANY pages that there is a script out
there that can read the extensions.conf file and create the MySQL DB records
on the fly.  Anyone know where I look for such a thing?


Sure speeds up migration!

Chris Coulthurst
[EMAIL PROTECTED]

That will be $10. Please pull up to the next window.

#!/usr/bin/perl -w

// originally downloaded from http://www.bkw.org/load.txt
//
// coding by pfn
//

use DBI;
use strict;
use POSIX;

if (@ARGV != 1) {
    print STDERR "Usage: load_res_config <ast_config_file>\n";
    exit 1;
}
open(CONFIG_FILE, "<$ARGV[0]") || die $!;
my @lines;
my $cat_metric = -1; # incremented to 0 on first hit
my $var_metric = -1;
my $category;
while (<CONFIG_FILE>) {
    my $line = $_;
    chop($line);
    my($var_name, $var_val);

    next if ($line =~ /^\s*;/); # comment line skip

    if ($line =~ /^\s*\[(.*?)\]/) {
        $category = $1;
        $var_metric = -1;
        $cat_metric++;
    } elsif ($line =~ /^\s*(\w+)\s*=>\s*(.+)\s*;?.*$/ ||
               $line =~ /^\s*(\w+)\s*=\s*(.+)\s*;?.*$/) {
        $var_metric++;
        $var_name = $1;
        $var_val  = $2;
    } else {
        next; # no match, skip
    }

    if ($var_metric >= 0) {
        my %hash = ('cat_metric' => $cat_metric,
                    'var_metric' => $var_metric,
                    'category'   => $category,
                    'var_name'   => $var_name,
                    'var_val'    => $var_val);
        push(@lines, \%hash);
    }
}

close(CONFIG_FILE);

my $dbh;
$dbh = DBI->connect("dbi:mysql:dbname=asterisk", "root", "asdf") || die $DBI::errstr;
foreach my $row (@lines) {
print "$row->{'cat_metric'}\t$row->{'category'}\t$row->{'var_metric'}\t$row->{'var_name'}\t$row->{'var_val'}\n"; my $sth = $dbh->prepare("INSERT into ast_config (filename, cat_metric, var_metric, category, var_name, var_val) values (?, ?, ?, ?, ?, ?)");
    $sth->bind_param(1, $ARGV[0]);
    $sth->bind_param(2, $row->{'cat_metric'});
    $sth->bind_param(3, $row->{'var_metric'});
    $sth->bind_param(4, $row->{'category'});
    $sth->bind_param(5, $row->{'var_name'});
    $sth->bind_param(6, $row->{'var_val'});
    $sth->execute();
    warn $sth->errstr if $sth->errstr;
}
$dbh->disconnect;

_______________________________________________
Asterisk-Users mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to