Adapt install.pl to new coding style.
* Switch to Getopt::Long, change coding style; limit line length. * Replace 'die' and 'warn' by calls to &Bleat(). * Completely changed options due to new GetOpt::Long processing. * Adapt to changes in NewsStats.pm * Redo documentation. * Update TODO. Signed-off-by: Thomas Hochstein <thh@inter.net>
This commit is contained in:
parent
f05ec4aeaa
commit
1fa9479946
1
doc/TODO
1
doc/TODO
|
@ -42,7 +42,6 @@ Bug numbers refer to the Mantis issue tracker at <http://bugs.th-h.de/>.
|
||||||
names - would be nice.
|
names - would be nice.
|
||||||
|
|
||||||
+ install/install.pl
|
+ install/install.pl
|
||||||
- Complete rewrite (like groupstats.pl, include changes in NewsStats.pm)
|
|
||||||
- Add / enhance / test error handling
|
- Add / enhance / test error handling
|
||||||
- General tests and optimisations
|
- General tests and optimisations
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
#
|
#
|
||||||
# It is part of the NewsStats package.
|
# It is part of the NewsStats package.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2010 Thomas Hochstein <thh@inter.net>
|
# Copyright (c) 2010-2012 Thomas Hochstein <thh@inter.net>
|
||||||
#
|
#
|
||||||
# It can be redistributed and/or modified under the same terms under
|
# It can be redistributed and/or modified under the same terms under
|
||||||
# which Perl itself is published.
|
# which Perl itself is published.
|
||||||
|
@ -24,11 +24,16 @@ use NewsStats qw(:DEFAULT);
|
||||||
use Cwd;
|
use Cwd;
|
||||||
|
|
||||||
use DBI;
|
use DBI;
|
||||||
|
use Getopt::Long qw(GetOptions);
|
||||||
|
Getopt::Long::config ('bundling');
|
||||||
|
|
||||||
################################# Main program #################################
|
################################# Main program #################################
|
||||||
|
|
||||||
### read commandline options
|
### read commandline options
|
||||||
my %Options = &ReadOptions('u:');
|
my ($OptUpdate);
|
||||||
|
GetOptions ('u|update=s' => \$OptUpdate,
|
||||||
|
'h|help' => \&ShowPOD,
|
||||||
|
'V|version' => \&ShowVersion) or exit 1;
|
||||||
|
|
||||||
### change working directory to .. (as we're in .../install)
|
### change working directory to .. (as we're in .../install)
|
||||||
chdir dirname($0).'/..';
|
chdir dirname($0).'/..';
|
||||||
|
@ -36,7 +41,7 @@ my $Path = cwd();
|
||||||
|
|
||||||
### read configuration
|
### read configuration
|
||||||
print("Reading configuration.\n");
|
print("Reading configuration.\n");
|
||||||
my %Conf = %{ReadConfig('newsstats.conf')};
|
my %Conf = %{ReadConfig($HomePath.'/newsstats.conf')};
|
||||||
|
|
||||||
##### --------------------------------------------------------------------------
|
##### --------------------------------------------------------------------------
|
||||||
##### Database table definitions
|
##### Database table definitions
|
||||||
|
@ -131,7 +136,7 @@ INSTALL
|
||||||
|
|
||||||
my $Upgrade = <<UPGRADE;
|
my $Upgrade = <<UPGRADE;
|
||||||
----------
|
----------
|
||||||
Your installation was upgraded from $Options{'u'} to $PackageVersion.
|
Your installation was upgraded from $OptUpdate to $PackageVersion.
|
||||||
|
|
||||||
Don't forget to restart your INN feed so that it can pick up the new version:
|
Don't forget to restart your INN feed so that it can pick up the new version:
|
||||||
|
|
||||||
|
@ -145,9 +150,10 @@ UPGRADE
|
||||||
### DB init, read list of tables
|
### DB init, read list of tables
|
||||||
print "Reading database information.\n";
|
print "Reading database information.\n";
|
||||||
my $DBHandle = InitDB(\%Conf,1);
|
my $DBHandle = InitDB(\%Conf,1);
|
||||||
my %TablesInDB = %{$DBHandle->table_info('%', '%', '%', 'TABLE')->fetchall_hashref('TABLE_NAME')};
|
my %TablesInDB =
|
||||||
|
%{$DBHandle->table_info('%', '%', '%', 'TABLE')->fetchall_hashref('TABLE_NAME')};
|
||||||
|
|
||||||
if (!$Options{'u'}) {
|
if (!$OptUpdate) {
|
||||||
##### installation mode
|
##### installation mode
|
||||||
print "----------\nStarting database table generation.\n";
|
print "----------\nStarting database table generation.\n";
|
||||||
# check for tables and create them, if they don't exist yet
|
# check for tables and create them, if they don't exist yet
|
||||||
|
@ -162,8 +168,8 @@ if (!$Options{'u'}) {
|
||||||
##### upgrade mode
|
##### upgrade mode
|
||||||
print "----------\nStarting upgrade process.\n";
|
print "----------\nStarting upgrade process.\n";
|
||||||
$PackageVersion = '0.03';
|
$PackageVersion = '0.03';
|
||||||
if ($Options{'u'} < $PackageVersion) {
|
if ($OptUpdate < $PackageVersion) {
|
||||||
if ($Options{'u'} < 0.02) {
|
if ($OptUpdate < 0.02) {
|
||||||
# 0.01 -> 0.02
|
# 0.01 -> 0.02
|
||||||
# &DoMySQL('...;');
|
# &DoMySQL('...;');
|
||||||
# print "v0.02: Database upgrades ...\n";
|
# print "v0.02: Database upgrades ...\n";
|
||||||
|
@ -185,19 +191,23 @@ exit(0);
|
||||||
sub CreateTable {
|
sub CreateTable {
|
||||||
my $Table = shift;
|
my $Table = shift;
|
||||||
if (defined($TablesInDB{$Conf{$Table}})) {
|
if (defined($TablesInDB{$Conf{$Table}})) {
|
||||||
printf("Database table %s.%s already exists, skipping ....\n",$Conf{'DBDatabase'},$Conf{$Table});
|
printf("Database table %s.%s already exists, skipping ....\n",
|
||||||
|
$Conf{'DBDatabase'},$Conf{$Table});
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
my $DBQuery = $DBHandle->prepare($DBCreate{$Table});
|
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);
|
$DBQuery->execute() or
|
||||||
printf("Database table %s.%s created succesfully.\n",$Conf{'DBDatabase'},$Conf{$Table});
|
&Bleat(2, sprintf("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});
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
sub DoMySQL {
|
sub DoMySQL {
|
||||||
my $SQL = shift;
|
my $SQL = shift;
|
||||||
my $DBQuery = $DBHandle->prepare($SQL);
|
my $DBQuery = $DBHandle->prepare($SQL);
|
||||||
$DBQuery->execute() or warn sprintf("$MySelf: E: Database error: %s\n",$DBI::errstr);
|
$DBQuery->execute() or &Bleat(1, sprintf("Database error: %s\n",$DBI::errstr));
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -221,23 +231,11 @@ install - installation script
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
B<install> [B<-Vh>]
|
B<install> [B<-Vh> [--update I<version>]
|
||||||
|
|
||||||
=head1 REQUIREMENTS
|
=head1 REQUIREMENTS
|
||||||
|
|
||||||
See doc/README: Perl 5.8.x itself and the following modules from CPAN:
|
See L<doc/README>.
|
||||||
|
|
||||||
=over 2
|
|
||||||
|
|
||||||
=item -
|
|
||||||
|
|
||||||
Config::Auto
|
|
||||||
|
|
||||||
=item -
|
|
||||||
|
|
||||||
DBI
|
|
||||||
|
|
||||||
=back
|
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
@ -245,23 +243,27 @@ This script will create database tables as necessary and configured.
|
||||||
|
|
||||||
=head2 Configuration
|
=head2 Configuration
|
||||||
|
|
||||||
F<install.pl> will read its configuration from F<newsstats.conf> via
|
B<install> will read its configuration from F<newsstats.conf> via
|
||||||
Config::Auto.
|
Config::Auto.
|
||||||
|
|
||||||
See doc/INSTALL for an overview of possible configuration options.
|
See L<doc/INSTALL> for an overview of possible configuration options.
|
||||||
|
|
||||||
=head1 OPTIONS
|
=head1 OPTIONS
|
||||||
|
|
||||||
=over 3
|
=over 3
|
||||||
|
|
||||||
=item B<-V> (version)
|
=item B<-V>, B<--version>
|
||||||
|
|
||||||
Print out version and copyright information on B<yapfaq> and exit.
|
Print out version and copyright information and exit.
|
||||||
|
|
||||||
=item B<-h> (help)
|
=item B<-h>, B<--help>
|
||||||
|
|
||||||
Print this man page and exit.
|
Print this man page and exit.
|
||||||
|
|
||||||
|
=item B<-u>, B<--update> I<version>
|
||||||
|
|
||||||
|
Don't do a fresh install, but update from I<version>.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
=head1 FILES
|
=head1 FILES
|
||||||
|
@ -278,7 +280,7 @@ Library functions for the NewsStats package.
|
||||||
|
|
||||||
=item F<newsstats.conf>
|
=item F<newsstats.conf>
|
||||||
|
|
||||||
Runtime configuration file for B<yapfaq>.
|
Runtime configuration file.
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
@ -293,11 +295,11 @@ bug tracker at L<http://bugs.th-h.de/>!
|
||||||
|
|
||||||
=item -
|
=item -
|
||||||
|
|
||||||
doc/README
|
L<doc/README>
|
||||||
|
|
||||||
=item -
|
=item -
|
||||||
|
|
||||||
doc/INSTALL
|
L<doc/INSTALL>
|
||||||
|
|
||||||
=back
|
=back
|
||||||
|
|
||||||
|
@ -309,7 +311,7 @@ Thomas Hochstein <thh@inter.net>
|
||||||
|
|
||||||
=head1 COPYRIGHT AND LICENSE
|
=head1 COPYRIGHT AND LICENSE
|
||||||
|
|
||||||
Copyright (c) 2010 Thomas Hochstein <thh@inter.net>
|
Copyright (c) 2010-2012 Thomas Hochstein <thh@inter.net>
|
||||||
|
|
||||||
This program is free software; you may redistribute it and/or modify it
|
This program is free software; you may redistribute it and/or modify it
|
||||||
under the same terms as Perl itself.
|
under the same terms as Perl itself.
|
||||||
|
|
Loading…
Reference in a new issue