From: dms Date: Thu, 14 Sep 2000 13:29:51 +0000 (+0000) Subject: script merge, doc update X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=44ebf4e9808117a41d4ca321e3b7f0a105e041cc;p=infobot.git script merge, doc update git-svn-id: https://svn.code.sf.net/p/infobot/code/trunk/blootbot@101 c11ca15a-4712-0410-83d8-924469b57eb5 --- diff --git a/scripts/setup_sql.pl b/scripts/setup_sql.pl new file mode 100755 index 0000000..f7c66e3 --- /dev/null +++ b/scripts/setup_sql.pl @@ -0,0 +1,333 @@ +#!/usr/bin/perl +# setup_tables: setup MYSQL/PGSQL side of things for blootbot. +# written by the xk. +### + +require "src/core.pl"; +require "src/logger.pl"; +require "src/modules.pl"; +require "src/Misc.pl"; +require "src/interface.pl"; + +$bot_src_dir = "./src/"; + +# read param stuff from blootbot.config. +&loadConfig("files/blootbot.config"); +&loadDBModules(); +my $dbname = $param{'DBName'}; +my $query; + +if ($dbname eq "") { + print "error: appears that teh config file was not loaded properly.\n"; + exit 1; +} + +if ($param{'DBType'} =~ /mysql/i) { + use DBI; + + print "Enter root information...\n"; + # username. + print "Username: "; + chop (my $adminuser = ); + + # passwd. + system "stty -echo"; + print "Password: "; + chop(my $adminpass = ); + print "\n"; + system "stty echo"; + + if ($adminuser eq "" or $adminpass eq "") { + &ERROR("error: adminuser || adminpass is NULL."); + exit 1; + } + + # open the db. + &openDB($dbname, $adminuser, $adminpass); + + # retrieve a list of db's from the server. + my %db; + foreach ($dbh->func('_ListTables')) { + $db{$_} = 1; + } + + # Step 4. + print "Step 4: Creating the tables.\n"; + + # factoid db. + if (!exists $db{'factoids'}) { + print " creating new table factoids...\n"; + + $query = "CREATE TABLE factoids (". + "factoid_key VARCHAR(64) NOT NULL,". + + "requested_by VARCHAR(64),". + "requested_time INT,". + "requested_count SMALLINT UNSIGNED,". + "created_by VARCHAR(64),". + "created_time INT,". + + "modified_by VARCHAR(192),". + "modified_time INT,". + + "locked_by VARCHAR(64),". + "locked_time INT,". + + "factoid_value TEXT NOT NULL,". + + "PRIMARY KEY (factoid_key)". + ")"; + + &dbRaw("create(factoids)", $query); + } + + # freshmeat. + if (!exists $db{'freshmeat'}) { + print " creating new table freshmeat...\n"; + + $query = "CREATE TABLE freshmeat (". + "name VARCHAR(64) NOT NULL,". + "stable VARCHAR(32),". + "devel VARCHAR(32),". + "section VARCHAR(40),". + "license VARCHAR(32),". + "homepage VARCHAR(128),". + "download VARCHAR(128),". + "changelog VARCHAR(128),". + "deb VARCHAR(128),". + "rpm VARCHAR(128),". + "link CHAR(55),". + "oneliner VARCHAR(96) NOT NULL,". + + "PRIMARY KEY (name)". + ")"; + + &dbRaw("create(freshmeat)", $query); + } + + # karma. + if (!exists $db{'karma'}) { + print " creating new table karma...\n"; + + $query = "CREATE TABLE karma (". + "nick VARCHAR(20) NOT NULL,". + "karma SMALLINT UNSIGNED,". + + "PRIMARY KEY (nick)". + ")"; + + &dbRaw("create(karma)", $query); + } + + # rootwarn. + if (!exists $db{'rootwarn'}) { + print " creating new table rootwarn...\n"; + + $query = "CREATE TABLE rootwarn (". + "nick VARCHAR(20) NOT NULL,". + "attempt SMALLINT UNSIGNED,". + "time INT NOT NULL,". + "host VARCHAR(80) NOT NULL,". + "channel VARCHAR(20) NOT NULL,". + + "PRIMARY KEY (nick)". + ")"; + + &dbRaw("create(rootwarn)", $query); + } + + # seen. + if (!exists $db{'seen'}) { + print " creating new table seen...\n"; + + $query = "CREATE TABLE seen (". + "nick VARCHAR(20) NOT NULL,". + "time INT NOT NULL,". + "channel VARCHAR(20) NOT NULL,". + "host VARCHAR(80) NOT NULL,". + "messagecount SMALLINT UNSIGNED,". + "hehcount SMALLINT UNSIGNED,". + "message TINYTEXT NOT NULL,". + + "PRIMARY KEY (nick)". + ")"; + + &dbRaw("create(seen)", $query); + } + + ### USER SETUP. + &closeDB(); + &openDB("mysql", $adminuser, $adminpass); + + # Step 1. + &status("Step 1: Adding user information."); + + # Step 2. + if (!&dbGet("user","user",$param{'SQLUser'},"user")) { + &status(" Adding user $param{'SQLUser'} $dbname/user table..."); + + $query = "INSERT INTO user VALUES ". + "('localhost', '$param{'SQLUser'}', ". + "password('$param{'SQLPass'}'), "; + + $query .= "'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N')"; +### $query .= "'Y','Y','Y','Y','N','N','N','N','N','N')"; + + &dbRaw("create(user)", $query); + } + + # Step 3. what's this for? + if (!&dbGet("db","db",$param{'SQLUser'},"db")) { + &status(" Adding 'db' entry"); + + $query = "INSERT INTO db VALUES ". + "('localhost', '$dbname', ". + "'$param{'SQLUser'}', "; + + $query .= "'Y','Y','Y','Y','Y','N','N','N','N','N')"; +### $query .= "'Y','Y','Y','Y','Y','N')"; + + &dbRaw("create(db)", $query); + } + + # grant. + &status(" Granting user access to table."); + $query = "GRANT SELECT,INSERT,UPDATE,DELETE ON $dbname TO $param{'SQLUser'}"; + &dbRaw("??", $query); + + # flush. + &status("Flushing privileges..."); + $query = "FLUSH PRIVILEGES"; # DOES NOT WORK on slink? + &dbRaw("mysql(flush)", $query); + + # create database. + &status("Creating database $param{'DBName'}..."); + $query = "CREATE DATABASE $param{'DBName'}"; + &dbRaw("create(db $param{'DBName'})", $query); + +} elsif ($param{'DBType'} =~ /pgsql|postgres/i) { + if ($param{'DBType'} =~ /pgsql|postgres/i) { use Pg; } # for runtime. + my $dbh = Pg::connectdb("dbname=$dbname"); + + if (PGRES_CONNECTION_OK eq $conn->status) { + print " opened mysql connection to $param{'mysqlHost'}\n"; + } else { + print " error: cannot connect to $param{'mysqlHost'}.\n"; + print " $conn->errorMessage\n"; + exit 1; + } + + # retrieve a list of db's from the server. + my %db; + foreach ($dbh->func('_ListTables')) { + $db{$_} = 1; + } + + # Step 4. + print "Step 4: Creating the tables.\n"; + + # factoid db. + if (!exists $db{'factoids'}) { + print " creating new table factoids...\n"; + + $query = "CREATE TABLE factoids (". + "factoid_key varying(64) NOT NULL,". + + "requested_by varying(64),". + "requested_time numeric(11,0),". + "requested_count numeric(5,0),". + "created_by varying(64),". + "created_time numeric(11,0),". + + "modified_by character varying(192),". + "modified_time numeric(11,0),". + + "locked_by character varying(64),". + "locked_time numeric(11,0),". + + "factoid_value text NOT NULL,". + + "PRIMARY KEY (factoid_key)". + ")"; + + &dbRaw("create(factoids)", $query); + } + + # freshmeat. + if (!exists $db{'freshmeat'}) { + print " creating new table freshmeat...\n"; + + $query = "CREATE TABLE freshmeat (". + "name charcter varying(64) NOT NULL,". + "stable character varying(32),". + "devel character varying(32),". + "section character varying(40),". + "license character varying(32),". + "homepage character varying(128),". + "download character varying(128),". + "changelog character varying(128),". + "deb character varying(128),". + "rpm character varying(128),". + "link character varying(55),". + "oneliner character varying(96) NOT NULL,". + + "PRIMARY KEY (name)". + ")"; + + &dbRaw("create(freshmeat)", $query); + } + + # karma. + if (!exists $db{'karma'}) { + print " creating new table karma...\n"; + + $query = "CREATE TABLE karma (". + "nick character varying(20) NOT NULL,". + "karma numeric(5,0),". + + "PRIMARY KEY (nick)". + ")"; + + &dbRaw("create(karma)", $query); + } + + # rootwarn. + if (!exists $db{'rootwarn'}) { + print " creating new table rootwarn...\n"; + + $query = "CREATE TABLE rootwarn (". + "nick character varying(20) NOT NULL,". + "attempt numeric(5,0),". + "time numeric(11,0) NOT NULL,". + "host character varying(80) NOT NULL,". + "channel character varying(20) NOT NULL,". + + "PRIMARY KEY (nick)". + ")"; + + &dbRaw("create(rootwarn)", $query); + } + + # seen. + if (!exists $db{'seen'}) { + print " creating new table seen...\n"; + + $query = "CREATE TABLE seen (". + "nick character varying(20) NOT NULL,". + "time numeric(11,0) NOT NULL,". + "channel character varying(20) NOT NULL,". + "host character varying(80) NOT NULL,". + "messagecount numeric(5,0),". + "hehcount numeric(5,0),". + "message text NOT NULL,". + + "PRIMARY KEY (nick)". + ")"; + + &dbRaw("create(seen)", $query); + } +} + +print "Done.\n"; + +&closeDB(); diff --git a/scripts/setup_tables.pl b/scripts/setup_tables.pl deleted file mode 100755 index d2e7cca..0000000 --- a/scripts/setup_tables.pl +++ /dev/null @@ -1,262 +0,0 @@ -#!/usr/bin/perl -# setup_tables: setup MYSQL/PGSQL side of things for blootbot. -# written by the xk. -### - -require "src/core.pl"; -require "src/logger.pl"; -require "src/modules.pl"; -require "src/Misc.pl"; - -$bot_src_dir = "./src/"; - -# read param stuff from blootbot.config. -&loadConfig("files/blootbot.config"); -&loadDBModules(); -my $dbname = $param{'DBName'}; -my $query; - -if ($dbname eq "") { - print "error: appears that teh config file was not loaded properly.\n"; - exit 1; -} - -if ($param{'DBType'} =~ /mysql/i) { - use DBI; - &openDB($param{'DBName'}, $param{'SQLUser'}, $param{'SQLPass'}); - - # retrieve a list of db's from the server. - my %db; - foreach ($dbh->func('_ListTables')) { - $db{$_} = 1; - } - - # Step 4. - print "Step 4: Creating the tables.\n"; - - # factoid db. - if (!exists $db{'factoids'}) { - print " creating new table factoids...\n"; - - $query = "CREATE TABLE factoids (". - "factoid_key VARCHAR(64) NOT NULL,". - - "requested_by VARCHAR(64),". - "requested_time INT,". - "requested_count SMALLINT UNSIGNED,". - "created_by VARCHAR(64),". - "created_time INT,". - - "modified_by VARCHAR(192),". - "modified_time INT,". - - "locked_by VARCHAR(64),". - "locked_time INT,". - - "factoid_value TEXT NOT NULL,". - - "PRIMARY KEY (factoid_key)". - ")"; - - &dbRaw("create(factoids)", $query); - } - - # freshmeat. - if (!exists $db{'freshmeat'}) { - print " creating new table freshmeat...\n"; - - $query = "CREATE TABLE freshmeat (". - "name VARCHAR(64) NOT NULL,". - "stable VARCHAR(32),". - "devel VARCHAR(32),". - "section VARCHAR(40),". - "license VARCHAR(32),". - "homepage VARCHAR(128),". - "download VARCHAR(128),". - "changelog VARCHAR(128),". - "deb VARCHAR(128),". - "rpm VARCHAR(128),". - "link CHAR(55),". - "oneliner VARCHAR(96) NOT NULL,". - - "PRIMARY KEY (name)". - ")"; - - &dbRaw("create(freshmeat)", $query); - } - - # karma. - if (!exists $db{'karma'}) { - print " creating new table karma...\n"; - - $query = "CREATE TABLE karma (". - "nick VARCHAR(20) NOT NULL,". - "karma SMALLINT UNSIGNED,". - - "PRIMARY KEY (nick)". - ")"; - - &dbRaw("create(karma)", $query); - } - - # rootwarn. - if (!exists $db{'rootwarn'}) { - print " creating new table rootwarn...\n"; - - $query = "CREATE TABLE rootwarn (". - "nick VARCHAR(20) NOT NULL,". - "attempt SMALLINT UNSIGNED,". - "time INT NOT NULL,". - "host VARCHAR(80) NOT NULL,". - "channel VARCHAR(20) NOT NULL,". - - "PRIMARY KEY (nick)". - ")"; - - &dbRaw("create(rootwarn)", $query); - } - - # seen. - if (!exists $db{'seen'}) { - print " creating new table seen...\n"; - - $query = "CREATE TABLE seen (". - "nick VARCHAR(20) NOT NULL,". - "time INT NOT NULL,". - "channel VARCHAR(20) NOT NULL,". - "host VARCHAR(80) NOT NULL,". - "messagecount SMALLINT UNSIGNED,". - "hehcount SMALLINT UNSIGNED,". - "message TINYTEXT NOT NULL,". - - "PRIMARY KEY (nick)". - ")"; - - &dbRaw("create(seen)", $query); - } -} elsif ($param{'DBType'} =~ /pgsql|postgres/i) { - if ($param{'DBType'} =~ /pgsql|postgres/i) { use Pg; } # for runtime. - my $dbh = Pg::connectdb("dbname=$dbname"); - - if (PGRES_CONNECTION_OK eq $conn->status) { - print " opened mysql connection to $param{'mysqlHost'}\n"; - } else { - print " error: cannot connect to $param{'mysqlHost'}.\n"; - print " $conn->errorMessage\n"; - exit 1; - } - - # retrieve a list of db's from the server. - my %db; - foreach ($dbh->func('_ListTables')) { - $db{$_} = 1; - } - - # Step 4. - print "Step 4: Creating the tables.\n"; - - # factoid db. - if (!exists $db{'factoids'}) { - print " creating new table factoids...\n"; - - $query = "CREATE TABLE factoids (". - "factoid_key varying(64) NOT NULL,". - - "requested_by varying(64),". - "requested_time numeric(11,0),". - "requested_count numeric(5,0),". - "created_by varying(64),". - "created_time numeric(11,0),". - - "modified_by character varying(192),". - "modified_time numeric(11,0),". - - "locked_by character varying(64),". - "locked_time numeric(11,0),". - - "factoid_value text NOT NULL,". - - "PRIMARY KEY (factoid_key)". - ")"; - - &dbRaw("create(factoids)", $query); - } - - # freshmeat. - if (!exists $db{'freshmeat'}) { - print " creating new table freshmeat...\n"; - - $query = "CREATE TABLE freshmeat (". - "name charcter varying(64) NOT NULL,". - "stable character varying(32),". - "devel character varying(32),". - "section character varying(40),". - "license character varying(32),". - "homepage character varying(128),". - "download character varying(128),". - "changelog character varying(128),". - "deb character varying(128),". - "rpm character varying(128),". - "link character varying(55),". - "oneliner character varying(96) NOT NULL,". - - "PRIMARY KEY (name)". - ")"; - - &dbRaw("create(freshmeat)", $query); - } - - # karma. - if (!exists $db{'karma'}) { - print " creating new table karma...\n"; - - $query = "CREATE TABLE karma (". - "nick character varying(20) NOT NULL,". - "karma numeric(5,0),". - - "PRIMARY KEY (nick)". - ")"; - - &dbRaw("create(karma)", $query); - } - - # rootwarn. - if (!exists $db{'rootwarn'}) { - print " creating new table rootwarn...\n"; - - $query = "CREATE TABLE rootwarn (". - "nick character varying(20) NOT NULL,". - "attempt numeric(5,0),". - "time numeric(11,0) NOT NULL,". - "host character varying(80) NOT NULL,". - "channel character varying(20) NOT NULL,". - - "PRIMARY KEY (nick)". - ")"; - - &dbRaw("create(rootwarn)", $query); - } - - # seen. - if (!exists $db{'seen'}) { - print " creating new table seen...\n"; - - $query = "CREATE TABLE seen (". - "nick character varying(20) NOT NULL,". - "time numeric(11,0) NOT NULL,". - "channel character varying(20) NOT NULL,". - "host character varying(80) NOT NULL,". - "messagecount numeric(5,0),". - "hehcount numeric(5,0),". - "message text NOT NULL,". - - "PRIMARY KEY (nick)". - ")"; - - &dbRaw("create(seen)", $query); - } -} - -&closeDB(); - -print "Done.\n"; diff --git a/scripts/setup_users.pl b/scripts/setup_users.pl deleted file mode 100755 index 9c1c200..0000000 --- a/scripts/setup_users.pl +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/perl -# setup_users: setup MYSQL/PGSQL side of things for blootbot. -# written by the xk. -### - -require "src/core.pl"; -require "src/Misc.pl"; -require "src/logger.pl"; -require "src/modules.pl"; -$bot_src_dir = "./src"; - -&loadConfig("files/blootbot.config"); -&loadDBModules(); - -my $dbname = $param{'DBName'}; -my $query; - -if ($dbname eq "") { - print "error: appears that teh config file was not loaded properly.\n"; - exit 1; -} - -if ($param{'DBType'} =~ /mysql/i) { - - print "Enter root information...\n"; - # username. - print "Username: "; - chop (my $adminuser = ); - - # passwd. - system "stty -echo"; - print "Password: "; - chop(my $adminpass = ); - print "\n"; - system "stty echo"; - - if ($adminuser eq "" or $adminpass eq "") { - print "error: adminuser || adminpass is NULL.\n"; - exit 1; - } - - # Step 1. - print "Step 1: Adding user information.\n"; - - # open the db. - &openDB("mysql", $adminuser, $adminpass); - - # Step 2. - if (!&dbGet("user","user",$param{'SQLUser'},"user")) { - print " Adding user $param{'SQLUser'} $dbname/user table...\n"; - - $query = "INSERT INTO user VALUES ". - "('localhost', '$param{'SQLUser'}', ". - "password('$param{'SQLPass'}'), "; - - $query .= "'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N')"; -### $query .= "'Y','Y','Y','Y','N','N','N','N','N','N')"; - - &dbRaw("create(user)", $query); - } - - # Step 3. what's this for? - if (!&dbGet("db","db",$param{'SQLUser'},"db")) { - print " Adding 'db' entry\n"; - - $query = "INSERT INTO db VALUES ". - "('localhost', '$dbname', ". - "'$param{'SQLUser'}', "; - - $query .= "'Y','Y','Y','Y','Y','N','N','N','N','N')"; -### $query .= "'Y','Y','Y','Y','Y','N')"; - - &dbRaw("create(db)", $query); - } - - # grant. - print " Granting user access to table.\n"; - $query = "GRANT SELECT,INSERT,UPDATE,DELETE ON $dbname TO $param{'SQLUser'}"; - &dbRaw("??", $query); - - # flush. - print "Flushing privileges...\n"; - $query = "FLUSH PRIVILEGES"; # DOES NOT WORK on slink? - &dbRaw("mysql(flush)", $query); - - # create database. - print "Creating database $param{'DBName'}...\n"; - $query = "CREATE DATABASE $param{'DBName'}"; - &dbRaw("create(db $param{'DBName'})", $query); -} elsif ($param{'DBType'} =~ /pg|postgres/i) { - use Pg; -# &openDB(); - - print "FIXME\n"; -} - -&closeDB();