#! /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