]> git.donarmstrong.com Git - infobot.git/blob - scripts/dbm2mysql.pl
- fhs changes
[infobot.git] / scripts / dbm2mysql.pl
1 #!/usr/bin/perl
2 # by the xk.
3 ###
4
5 require "src/core.pl";
6 require "src/logger.pl";
7 require "src/modules.pl";
8
9 require "src/Misc.pl";
10 require "src/Files.pl";
11 &loadDBModules();
12 package MYSQL;
13 require "src/db_mysql.pl";
14 package DBM;
15 require "src/db_dbm.pl";
16 package main;
17
18 if (!scalar @ARGV) {
19     print "Usage: dbm2mysql <whatever dbm>\n";
20     print "Example: dbm2mysql.pl apt\n";
21     print "NOTE: suffix '-is' and '-extra' are used.\n";
22     exit 0;
23 }
24
25 my $dbfile = shift;
26 my $key;
27 my %db;
28
29 ### open all the data...
30 &loadConfig("files/blootbot.config");
31 $dbname = $param{'DBName'};
32 my $dbh_mysql = MYSQL::openDB($param{'DBName'}, $param{'SQLUser'}, $param{'SQLPass'});
33 DBM::openDB();
34
35 print "scalar db == '". scalar(keys %db) ."'.\n";
36
37 my ($ndef, $i) = (1,1);
38 my $factoid;
39 foreach $factoid (keys %db) {
40     foreach (@DBM::extra_format) {
41         my $val = &DBM::getFactInfo($key, $_, $db{$key});
42         if (!defined $val) {
43             $ndef++;
44             next;
45         }
46         &MYSQL::setFactInfo($key, $_, $val); # fact, type, what
47     }
48     $i++;
49     print "i=$i... " if ($i % 100 == 0);
50     print "ndef=$ndef... " if ($ndef % 1000 == 0);
51 }
52
53 print "Done.\n";
54 &closeDB();