Merge branch 'installation' into next

* installation:
  Fix config path detection for install.pl.
  Add some TODO entries.
  Add database creation to installer.
  Handle undefined previous version when installing.
This commit is contained in:
Thomas Hochstein 2013-09-02 12:19:11 +02:00
commit d28168419e
2 changed files with 33 additions and 4 deletions

View file

@ -12,6 +12,10 @@ Bug numbers refer to the Mantis issue tracker at <http://bugs.th-h.de/>.
- Add a test suite - Add a test suite
There is currently no kind of test suite or regression tests. Something like There is currently no kind of test suite or regression tests. Something like
that is badly needed. that is badly needed.
- separate directories (bin, config, ...)
- make NewsStats installable in accordance with LFS and customary procedures,
i.e. scripts to /usr/local/news/bin or /usr/lib/news/bin, configuration
to /usr/local/news/etc or /etc/news and so on
* Additional features * Additional features
- Add hierarchy information (GroupInfo - Bugs #19 #20 #21 #22 #23 #24 #25 #26) - Add hierarchy information (GroupInfo - Bugs #19 #20 #21 #22 #23 #24 #25 #26)
@ -42,6 +46,8 @@ 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
- Check installer & fix bugs to get a working version ... finally
- Read current version from a file dropped and updated by installer
- Add / enhance / test error handling - Add / enhance / test error handling
- General tests and optimisations - General tests and optimisations

View file

@ -36,17 +36,21 @@ GetOptions ('u|update=s' => \$OptUpdate,
'V|version' => \&ShowVersion) or exit 1; '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($FullPath).'/..';
my $Path = cwd(); my $Path = cwd();
### read configuration ### read configuration
print("Reading configuration.\n"); print("Reading configuration.\n");
my %Conf = %{ReadConfig($HomePath.'/newsstats.conf')}; my %Conf = %{ReadConfig($Path.'/newsstats.conf')};
##### -------------------------------------------------------------------------- ##### --------------------------------------------------------------------------
##### Database table definitions ##### Database table definitions
##### -------------------------------------------------------------------------- ##### --------------------------------------------------------------------------
my $DBCreate = <<SQLDB;
CREATE DATABASE IF NOT EXISTS `$Conf{'DBDatabase'}` DEFAULT CHARSET=utf8;
SQLDB
my %DBCreate = ('DBTableRaw' => <<RAW, 'DBTableGrps' => <<GRPS); my %DBCreate = ('DBTableRaw' => <<RAW, 'DBTableGrps' => <<GRPS);
-- --
-- Table structure for table DBTableRaw -- Table structure for table DBTableRaw
@ -134,7 +138,9 @@ Enjoy!
-thh <thh\@inter.net> -thh <thh\@inter.net>
INSTALL INSTALL
my $Upgrade = <<UPGRADE; my $Upgrade ='';
if ($OptUpdate) {
$Upgrade = <<UPGRADE;
---------- ----------
Your installation was upgraded from $OptUpdate to $PackageVersion. Your installation was upgraded from $OptUpdate to $PackageVersion.
@ -144,9 +150,27 @@ Don't forget to restart your INN feed so that it can pick up the new version:
(or whatever you called your feed). (or whatever you called your feed).
UPGRADE UPGRADE
}
##### --------------------------- End of definitions --------------------------- ##### --------------------------- End of definitions ---------------------------
### create DB, if necessary
if (!$OptUpdate) {
print "----------\nStarting database creation.\n";
# create database
# we can't use InitDB() as that will use a table name of
# the table that doesn't exist yet ...
my $DBHandle = DBI->connect(sprintf('DBI:%s:host=%s',$Conf{'DBDriver'},
$Conf{'DBHost'}), $Conf{'DBUser'},
$Conf{'DBPw'}, { PrintError => 0 });
my $DBQuery = $DBHandle->prepare($DBCreate);
$DBQuery->execute() or &Bleat(2, sprintf("Can't create database %s: %s%\n",
$Conf{'DBDatabase'}, $DBI::errstr));
printf("Database table %s created succesfully.\n",$Conf{'DBDatabase'});
$DBHandle->disconnect;
};
### 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);
@ -155,7 +179,6 @@ my %TablesInDB =
if (!$OptUpdate) { if (!$OptUpdate) {
##### installation mode ##### installation mode
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
foreach my $Table (keys %DBCreate) { foreach my $Table (keys %DBCreate) {
&CreateTable($Table); &CreateTable($Table);