2 # setup_tables: setup MYSQL/PGSQL side of things for infobot.
6 require "src/logger.pl";
8 require "src/modules.pl";
10 require "src/CLI/Support.pl";
12 $bot_src_dir = "src/";
14 # read param stuff from infobot.config.
15 &loadConfig("files/infobot.config");
18 my $dbname = $param{'DBName'};
21 if ( $dbname eq "" ) {
22 print "error: appears that the config file was not loaded properly.\n";
26 if ( $param{'DBType'} =~ /mysql/i ) {
29 print "Enter root information...\n";
33 chop( my $adminuser = <STDIN> );
38 chop( my $adminpass = <STDIN> );
42 if ( $adminuser eq "" or $adminpass eq "" ) {
43 &ERROR("error: adminuser || adminpass is NULL.");
47 &sqlOpenDB( "mysql", "mysql", $adminuser, $adminpass );
49 my $database_exists = 0;
50 foreach $database ( &sqlRawReturn("SHOW DATABASES") ) {
51 $database_exists++ if $database eq $param{DBName};
53 if ($database_exists) {
54 &status("Database '$param{DBName}' already exists. Continuing...");
57 &status("Creating db ...");
58 &sqlRaw( "create(database)", "CREATE DATABASE $param{DBName}" );
61 &status("--- Adding user information for user '$param{'SQLUser'}'");
65 "user", "user", { 'user' => &sqlQuote( $param{'SQLUser'} ) }
69 &status("--- Adding user '$param{'SQLUser'}' $dbname/user table...");
72 "INSERT INTO user VALUES "
73 . "('localhost', '$param{'SQLUser'}', "
74 . "password('$param{'SQLPass'}'), ";
76 $query .= "'Y','Y','Y','Y','Y','Y','N','N','N','N','N','N','N','N')";
78 &sqlRaw( "create(user)", $query );
81 &status("... user information already present.");
84 if ( !&sqlSelect( "db", "db", { 'db' => &sqlQuote( $param{'SQLUser'} ) } ) )
86 &status("--- Adding database information for database '$dbname'.");
89 "INSERT INTO db VALUES "
90 . "('localhost', '$dbname', "
91 . "'$param{'SQLUser'}', ";
93 $query .= "'Y','Y','Y','Y','Y','Y','Y','N','N','N')";
95 &sqlRaw( "create(db)", $query );
98 &status("... db info already present.");
102 &status("Flushing privileges...");
103 $query = "FLUSH PRIVILEGES";
104 &sqlRaw( "mysql(flush)", $query );
111 # vim:ts=4:sw=4:expandtab:tw=80