]> git.donarmstrong.com Git - infobot.git/blob - scripts/dbm2mysql.pl
ws
[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 require "src/dbi.pl";
13 package main;
14
15 if (!scalar @ARGV) {
16     print "Usage: dbm2mysql <whatever dbm>\n";
17     print "Example: dbm2mysql.pl apt\n";
18     print "NOTE: suffix '-is' and '-extra' are used.\n";
19     exit 0;
20 }
21
22 my $dbfile = shift;
23 my $key;
24 my %db;
25
26 # open dbm.
27 if (dbmopen(%{ $dbm }, $dbfile, 0666)) {
28     &status("::: opening dbm file: $dbfile");
29 } else {
30     &ERROR("Failed open to dbm file ($dbfile).");
31     exit 1;
32 }
33
34 ### open all the data...
35 &loadConfig("files/blootbot.config");
36 $dbname = $param{'DBName'};
37 my $dbh_mysql = sqlOpenDB($param{'DBName'},
38         $param{'DBType'}, $param{'SQLUser'}, $param{'SQLPass'});
39
40 print "scalar db == '". scalar(keys %db) ."'.\n";
41
42 my ($ndef, $i) = (1,1);
43 my $factoid;
44 foreach $factoid (keys %db) {
45     # blootbot dbm to sql support:
46     if (0) {
47         foreach (@DBM::extra_format) {
48 #           my $val = &getFactInfo($key, $_, $db{$key});
49             if (!defined $val) {
50                 $ndef++;
51                 next;
52             }
53         }
54     } else {
55         # infobot dbm to blootbot sql support.
56         &sqlReplace("factoids", {
57                 factoid_key     => $_,
58                 factoid_value   => $db{$_},
59         } );
60     }
61
62     $i++;
63     print "i=$i... " if ($i % 100 == 0);
64     print "ndef=$ndef... " if ($ndef % 1000 == 0);
65 }
66
67 print "Done.\n";
68 &closeDB();
69 dbmclose(%{ $dbm });