X-Git-Url: https://code.th-h.de/?p=usenet%2Fnewsstats.git;a=blobdiff_plain;f=install%2Finstall.pl;fp=install%2Finstall.pl;h=9b6b332eb21059d6ce0ea40e76820a11c2183446;hp=0000000000000000000000000000000000000000;hb=741336c210429f37bebfd9882b9461e824320cd0;hpb=4db873f74dd1585f2d0e5386bc1df03e6117d284 diff --git a/install/install.pl b/install/install.pl new file mode 100755 index 0000000..9b6b332 --- /dev/null +++ b/install/install.pl @@ -0,0 +1,152 @@ +#! /usr/bin/perl -W +# +# install.pl +# +# This script will create database tables as necessary. +# +# It is part of the NewsStats package. +# +# Copyright (c) 2010 Thomas Hochstein +# +# It can be redistributed and/or modified under the same terms under +# which Perl itself is published. + +BEGIN { + our $VERSION = "0.01"; + use File::Basename; + # we're in .../install, so our module is in .. + push(@INC, dirname($0).'/..'); +} +use strict; + +use NewsStats qw(:DEFAULT); + +use Cwd; + +use DBI; + +################################# Main program ################################# + +### read commandline options +my %Options = &ReadOptions(''); + +### change working directory to .. (as we're in .../install) +chdir '..'; + +### read configuration +print("Reading configuration.\n"); +my %Conf = %{ReadConfig('newsstats.conf')}; + +##### -------------------------------------------------------------------------- +##### Database table definitions +##### -------------------------------------------------------------------------- + +my %DBCreate = ('DBTableRaw' => < <table_info('%', '%', '%', 'TABLE')->fetchall_hashref('TABLE_NAME')}; + +# check for tables and create them, if they don't exist yet +foreach my $Table (keys %DBCreate) { + if (defined($TablesInDB{$Conf{$Table}})) { + printf("Database table %s.%s already exists, skipping ....\n",$Conf{'DBDatabase'},$Conf{$Table}); + next; + }; + my $DBQuery = $DBHandle->prepare($DBCreate{$Table}); + $DBQuery->execute() or die sprintf("$MySelf: E: Can't create table %s in database %s: %s%\n",$Table,$Conf{'DBDatabase'},$DBI::errstr); + printf("Database table %s.%s created succesfully.\n",$Conf{'DBDatabase'},$Conf{$Table}); +}; + +# close handle +$DBHandle->disconnect; +print "Database table generation done.\n"; + +### output information on other necessary steps +my $Path = cwd(); +print < +TODO