]> git.donarmstrong.com Git - infobot.git/blob - setup/setup.pl
* Rebranding from blootbot to infobot
[infobot.git] / setup / setup.pl
1 #!/usr/bin/perl
2 # setup_tables: setup MYSQL/PGSQL side of things for infobot.
3 # written by the xk.
4 ###
5
6 require "src/logger.pl";
7 require "src/core.pl";
8 require "src/modules.pl";
9 require "src/Misc.pl";
10 require "src/CLI/Support.pl";
11
12 $bot_src_dir = "src/";
13
14 # read param stuff from infobot.config.
15 &loadConfig("files/infobot.config");
16
17 &loadDBModules();
18 my $dbname = $param{'DBName'};
19 my $query;
20
21 if ($dbname eq "") {
22   print "error: appears that the config file was not loaded properly.\n";
23   exit 1;
24 }
25
26 if ($param{'DBType'} =~ /mysql/i) {
27     use DBI;
28
29     print "Enter root information...\n";
30     # username.
31     print "Username: ";
32     chop (my $adminuser = <STDIN>);
33
34     # passwd.
35     system "stty -echo";
36     print "Password: ";
37     chop(my $adminpass = <STDIN>);
38     print "\n";
39     system "stty echo";
40
41     if ($adminuser eq "" or $adminpass eq "") {
42         &ERROR("error: adminuser || adminpass is NULL.");
43         exit 1;
44     }
45
46     &sqlOpenDB("mysql", "mysql", $adminuser, $adminpass);
47
48     my $database_exists = 0;
49     foreach $database (&sqlRawReturn("SHOW DATABASES")) {
50         $database_exists++ if $database eq $param{DBName};
51     }
52     if ($database_exists) {
53         &status("Database '$param{DBName}' already exists. Continuing...");
54     } else {
55         &status("Creating db ...");
56         &sqlRaw("create(database)", "CREATE DATABASE $param{DBName}");
57     }
58
59     &status("--- Adding user information for user '$param{'SQLUser'}'");
60
61     if (!&sqlSelect("user", "user", { 'user' => &sqlQuote($param{'SQLUser'}) })) {
62         &status("--- Adding user '$param{'SQLUser'}' $dbname/user table...");
63
64         $query = "INSERT INTO user VALUES ".
65                 "('localhost', '$param{'SQLUser'}', ".
66                 "password('$param{'SQLPass'}'), ";
67
68         $query .= "'Y','Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N')";
69
70         &sqlRaw("create(user)", $query);
71     } else {
72         &status("... user information already present.");
73     }
74
75     if (!&sqlSelect("db", "db", { 'db' => &sqlQuote($param{'SQLUser'}) })) {
76         &status("--- Adding database information for database '$dbname'.");
77
78         $query = "INSERT INTO db VALUES ".
79                 "('localhost', '$dbname', ".
80                 "'$param{'SQLUser'}', ";
81
82         $query .= "'Y','Y','Y','Y','Y','Y','Y','N','N','N')";
83
84         &sqlRaw("create(db)", $query);
85     } else {
86         &status("... db info already present.");
87     }
88
89     # flush.
90     &status("Flushing privileges...");
91     $query = "FLUSH PRIVILEGES";
92     &sqlRaw("mysql(flush)", $query);
93 }
94
95 &status("Done.");
96
97 &sqlCloseDB();