#! /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 dirname($0).'/..'; ### 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 __END__ ################################ Documentation ################################# =head1 NAME install - installation script =head1 SYNOPSIS B [B<-Vh>] =head1 REQUIREMENTS See doc/README: Perl 5.8.x itself and the following modules from CPAN: =over 2 =item - Config::Auto =item - DBI =back =head1 DESCRIPTION This script will create database tables as necessary and configured. =head2 Configuration F will read its configuration from F via Config::Auto. See doc/INSTALL for an overview of possible configuration options. =head1 OPTIONS =over 3 =item B<-V> (version) Print out version and copyright information on B and exit. =item B<-h> (help) Print this man page and exit. =back =head1 FILES =over 4 =item F The script itself. =item F Library functions for the NewsStats package. =item F Runtime configuration file for B. =back =head1 BUGS Please report any bugs or feature requests to the author or use the bug tracker at L! =head1 SEE ALSO =over 2 =item - doc/README =item - doc/INSTALL =back This script is part of the B package. =head1 AUTHOR Thomas Hochstein =head1 COPYRIGHT AND LICENSE Copyright (c) 2010 Thomas Hochstein This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =cut