· 10 years ago · Feb 11, 2016, 09:43 PM
1#!/usr/bin/perl
2# setup_tables: setup MYSQL/PGSQL side of things for blootbot.
3# written by the xk.
4###
5
6require "src/logger.pl";
7require "src/core.pl";
8require "src/modules.pl";
9require "src/Misc.pl";
10require "src/CLI/Support.pl";
11
12$bot_src_dir = "src/";
13
14# read param stuff from blootbot.config.
15&loadConfig("files/blootbot.config");
16
17&loadDBModules();
18my $dbname = $param{'DBName'};
19my $query;
20
21if ($dbname eq "") {
22 print "error: appears that the config file was not loaded properly.\n";
23 exit 1;
24}
25
26if ($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();
98