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