#!/usr/bin/perl use Getopt::Std; use Lemonldap::NG::Common::Conf; use strict; # Get ARGS my %opts; getopts( 'ct:', \%opts ); usage("configuration file required") unless ( $ARGV[0] ); usage(qq#$ARGV[0] is not readable#) unless ( -r $ARGV[0] ); my $table = $opts{t} || 'lmConfig'; if($opts{c}) { print "CREATE TABLE $table ( cfgNum int not null primary key, locationRules text, exportedHeaders text, globalStorage text, globalStorageOptions text, macros text, groups text, portal text, domain text, ldapServer text, ldapPort int, ldapBase text, securedCookie int, cookieName text, authentication text, exportedVars text, managerDn text, managerPassword text, timeout int, whatToTrace text\n);\n"; } my $fields; open FILE, $ARGV[0]; $/ = ""; while () { my ( $k, $v ) = split /\n\s+/; chomp $k; next unless($k); $v =~ s/\n*$//; $fields->{$k} = $v; } print "INSERT INTO " . $table . " (\n\t" . join( ",\n\t", keys(%$fields) ) . ")\n VALUES (\n\t" . join( ",\n\t", values(%$fields) ) . "\n );\n"; close FILE; sub usage { print STDERR shift; print STDERR "\nusage: $0 file Options: -t table : name of the table (default: lmConfig) -c : add 'create table' instruction\n"; exit 1; } 1; __END__ =head1 NAME lmConfig_File2MySQL - Perl utility to convert Lemonldap::NG configuration file into MySQL SQL file. =head1 SYNOPSIS lmConf_File2MySQL /path/to/lmConf-1 =head1 DESCRIPTION Use this software to convert Lemonldap::NG configuration file into SQL instructions. =head2 Options =over =item * -c : add "create table" instruction =item * -t : name of the table (lmConfig by default) =back =head1 SEE ALSO Lemonldap::NG::Manager =head1 AUTHOR Xavier Guimard, Ex.guimard@free.frE =head1 COPYRIGHT AND LICENSE Copyright (C) 2007 by Xavier Guimard This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available. =cut