Merge branch 'language' into next
authorThomas Hochstein <thh@inter.net>
Mon, 2 Sep 2013 11:00:33 +0000 (13:00 +0200)
committerThomas Hochstein <thh@inter.net>
Mon, 2 Sep 2013 11:00:33 +0000 (13:00 +0200)
* language:
  Some documentation fixes and enhancments.
  Improve INSTALL documentation.
  README: Update copyright notice.
  README: improve phrasing.

1  2 
feedlog.pl
gatherstats.pl
groupstats.pl

diff --combined feedlog.pl
@@@ -1,4 -1,4 +1,4 @@@
 -#! /usr/bin/perl -W
 +#! /usr/bin/perl
  #
  # feedlog.pl
  #
@@@ -18,7 -18,6 +18,7 @@@ BEGIN 
    push(@INC, dirname($0));
  }
  use strict;
 +use warnings;
  
  use NewsStats;
  
@@@ -201,7 -200,7 +201,7 @@@ Suppress logging to syslog
  
  =head1 INSTALLATION
  
- See L<doc/INSTALL.>
+ See L<doc/INSTALL>.
  
  =head1 EXAMPLES
  
diff --combined gatherstats.pl
@@@ -1,4 -1,4 +1,4 @@@
 -#! /usr/bin/perl -W
 +#! /usr/bin/perl
  #
  # gatherstats.pl
  #
@@@ -18,7 -18,6 +18,7 @@@ BEGIN 
    push(@INC, dirname($0));
  }
  use strict;
 +use warnings;
  
  use NewsStats qw(:DEFAULT :TimePeriods ListNewsgroups ParseHierarchies ReadGroupList);
  
@@@ -206,7 -205,7 +206,7 @@@ gatherstats - process statistical data 
  
  =head1 SYNOPSIS
  
- B<gatherstats> [B<-Vhdt>] [B<-m> I<YYYY-MM> | I<YYYY-MM:YYYY-MM>] [B<-s> I<stats] [B<-c> I<filename template>]] [B<--hierarchy> I<TLH>] [B<--rawdb> I<database table>] [B<-groupsdb> I<database table>] [B<--clientsdb> I<database table>] [B<--hostsdb> I<database table>]
+ B<gatherstats> [B<-Vhdt>] [B<-m> I<YYYY-MM> | I<YYYY-MM:YYYY-MM>] [B<-s> I<stats>] [B<-c> I<filename template>]] [B<--hierarchy> I<TLH>] [B<--rawdb> I<database table>] [B<-groupsdb> I<database table>] [B<--clientsdb> I<database table>] [B<--hostsdb> I<database table>]
  
  =head1 REQUIREMENTS
  
@@@ -293,7 -292,6 +293,6 @@@ Set processing period to a single mont
  period between two month in YYYY-MM:YYYY-MM format (two month, separated
  by a colon). 
  
  =item B<-s>, B<--stats> I<type>
  
  Set processing type to one of I<all> and I<groups>. Defaults to all
@@@ -307,8 -305,9 +306,9 @@@ one group on each line and ignoring eve
  whitespace (so you can use a file in checkgroups format or (part of)
  your INN active file).
  
- The filename is taken from I<filename template>, amended by each B<--
- month> B<gatherstats> is processing, so that
+ The filename is taken from I<filename template>, amended by each
+ B<--month> B<gatherstats> is processing in the form of I<template-YYYY-MM>,
+ so that
  
      gatherstats -m 2010-01:2010-12 -c checkgroups
  
diff --combined groupstats.pl
@@@ -1,4 -1,4 +1,4 @@@
 -#! /usr/bin/perl -W
 +#! /usr/bin/perl
  #
  # groupstats.pl
  #
@@@ -18,7 -18,6 +18,7 @@@ BEGIN 
    push(@INC, dirname($0));
  }
  use strict;
 +use warnings;
  
  use NewsStats qw(:DEFAULT :TimePeriods :Output :SQLHelper ReadGroupList);
  
@@@ -100,13 -99,8 +100,13 @@@ my ($CaptionPeriod,$SQLWherePeriod) = &
           "please use 'YYYY-MM', 'YYYY-MM:YYYY-MM' or 'ALL'!") if !$CaptionPeriod;
  # get list of newsgroups and set expression for SQL 'WHERE' clause
  # with placeholders as well as a list of newsgroup to bind to them
 -my ($SQLWhereNewsgroups,@SQLBindNewsgroups) = &SQLGroupList($OptNewsgroups)
 -  if $OptNewsgroups;;
 +my ($SQLWhereNewsgroups,@SQLBindNewsgroups);
 +if ($OptNewsgroups) {
 +  ($SQLWhereNewsgroups,@SQLBindNewsgroups) = &SQLGroupList($OptNewsgroups);
 +  # bail out if --newsgroups is invalid
 +  &Bleat(2,"--newsgroups option has an invalid format!")
 +    if !$SQLWhereNewsgroups;
 +}
  
  ### build SQL WHERE clause (and HAVING clause, if needed)
  my ($SQLWhereClause,$SQLHavingClause);
@@@ -160,10 -154,9 +160,10 @@@ if ($OptReportType and $OptReportType n
  ### get length of longest newsgroup name delivered by query
  ### for formatting purposes
  my $Field = ($GroupBy eq 'month') ? 'newsgroup' : 'month';
 -my $MaxLength = &GetMaxLength($DBHandle,$Conf{'DBTableGrps'},
 -                              $Field,$SQLWhereClause,$SQLHavingClause,
 -                              @SQLBindNewsgroups);
 +my ($MaxLength,$MaxValLength) = &GetMaxLength($DBHandle,$Conf{'DBTableGrps'},
 +                                              $Field,'postings',$SQLWhereClause,
 +                                              $SQLHavingClause,
 +                                              @SQLBindNewsgroups);
  
  ### build and execute SQL query
  my ($DBQuery);
@@@ -200,8 -193,8 +200,8 @@@ if ($OptBoundType and $OptBoundType ne 
  $DBQuery = $DBHandle->prepare(sprintf('SELECT %s FROM %s.%s %s %s %s',
                                        $SQLSelect,
                                        $Conf{'DBDatabase'},$Conf{'DBTableGrps'},
 -                                      $SQLWhereClause,$SQLGroupClause,$
 -                                      SQLOrderClause));
 +                                      $SQLWhereClause,$SQLGroupClause,
 +                                      $SQLOrderClause));
  
  # execute query
  $DBQuery->execute(@SQLBindNewsgroups)
@@@ -248,7 -241,7 +248,7 @@@ if ($OptCaptions && $OptComments) 
  # output data
  &OutputData($OptFormat,$OptComments,$GroupBy,$Precision,
              $OptCheckgroupsFile ? $ValidGroups : '',
 -            $OptFileTemplate,$DBQuery,$MaxLength);
 +            $OptFileTemplate,$DBQuery,$MaxLength,$MaxValLength);
  
  ### close handles
  $DBHandle->disconnect;
@@@ -379,6 -372,9 +379,9 @@@ Restrict output to those newgroups pres
  (one newgroup name per line; everything after the first whitespace on each
  line is ignored). All other newsgroups will be removed from output.
  
+ Contrary to B<gatherstats>, I<filename> is not a template, but refers to
+ a single file in checkgroups format.
  =item B<-r>, B<--report> I<default|average|sums>
  
  Choose the report type: I<default>, I<average> or I<sums>
@@@ -436,8 -432,8 +439,8 @@@ you'll get the following result
  
  de.comp.datenbanken.misc has not been considered even though it has 38
  postings in total, because it has less than 25 postings in every single
- month. If you want to list all newsgroups with more than 25 postings U<in
- total>, you'll have to set the boundary type to I<sum>, see below.
+ month. If you want to list all newsgroups with more than 25 postings
I<in total>, you'll have to set the boundary type to I<sum>, see below.
  
  A boundary type of I<level> will show only those newsgroups - at all -
  that satisfy the boundaries in each and every single month. With the above
@@@ -449,10 -445,10 +452,10 @@@ you'll get this result
      de.comp.datenbanken.ms-access        293
  
  de.comp.datenbanken.mysql has not been considered because it had less than
- 25 postings in 2012-02.
+ 25 postings in 2012-02 (only).
  
  You can use that to get a list of newsgroups that have more (or less) then
- x postings during the whole reporting period.
+ x postings in every month during the whole reporting period.
  
  A boundary type of I<average> will show only those newsgroups - at all -that
  satisfy the boundaries on average. With the above list of newsgroups and
This page took 0.017126 seconds and 4 git commands to generate.