Merge branch 'thh-bug51' into next
authorThomas Hochstein <thh@inter.net>
Tue, 3 Sep 2013 20:25:23 +0000 (22:25 +0200)
committerThomas Hochstein <thh@inter.net>
Tue, 3 Sep 2013 20:25:23 +0000 (22:25 +0200)
* thh-bug51:
  One more default sorting order ("grouping").

1  2 
bin/groupstats.pl

diff --combined bin/groupstats.pl
@@@ -78,16 -78,9 +78,16 @@@ if ($OptReportType) 
      $OptReportType  = 'default';
    }
  }
 -# read list of newsgroups from --checkgroups
 -# into a hash reference
 -my $ValidGroups = &ReadGroupList($OptCheckgroupsFile) if $OptCheckgroupsFile;
 +# honor $OptCheckgroupsFile,
 +# warn for $OptSums if set concurrently
 +my $ValidGroups;
 +if ($OptCheckgroupsFile) {
 +  # read list of newsgroups from --checkgroups
 +  # into a hash reference
 +  $ValidGroups = &ReadGroupList($OptCheckgroupsFile);
 +  &Bleat(1,"--sums option can't possibly work with --checkgroups option set")
 +    if $OptSums;
 +}
  
  ### read configuration
  my %Conf = %{ReadConfig($OptConfFile)};
@@@ -133,12 -126,17 +133,17 @@@ if ($OptBoundType and $OptBoundType ne 
  }
  
  ### get sort order and build SQL 'ORDER BY' clause
+ # force to 'month' for $OptReportType 'average' or 'sum'
+ $OptGroupBy = 'month' if ($OptReportType and $OptReportType ne 'default');
  # default to 'newsgroup' for $OptBoundType 'level' or 'average'
  $OptGroupBy = 'newsgroup' if (!$OptGroupBy and
                                $OptBoundType and $OptBoundType ne 'default');
- # force to 'month' for $OptReportType 'average' or 'sum'
- $OptGroupBy = 'month' if ($OptReportType and $OptReportType ne 'default');
+ # default to 'newsgroup' if $OptGroupBy is not set and
+ # just one newsgroup is requested, but more than one month
+ $OptGroupBy = 'newsgroup' if (!$OptGroupBy and
+                               $OptMonth =~ /:/ and $OptNewsgroups !~ /[:*%]/);
  # parse $OptGroupBy to $GroupBy, create ORDER BY clause $SQLOrderClause
+ # if $OptGroupBy is still not set, SQLSortOrder() will default to 'month'
  my ($GroupBy,$SQLOrderClause) = SQLSortOrder($OptGroupBy, $OptOrderBy);
  # $GroupBy will contain 'month' or 'newsgroup' (parsed result of $OptGroupBy)
  # set it to 'month' or 'key' for OutputData()
@@@ -382,9 -380,6 +387,9 @@@ example
  
  See the B<gatherstats> man page for details.
  
 +This option does not work together with the B<--checkgroups> option as
 +all "virtual" groups will not be present in the checkgroups file.
 +
  =item B<--checkgroups> I<filename>
  
  Restrict output to those newgroups present in a file in checkgroups format
@@@ -394,9 -389,6 +399,9 @@@ line is ignored). All other newsgroups 
  Contrary to B<gatherstats>, I<filename> is not a template, but refers to
  a single file in checkgroups format.
  
 +The B<--sums> option will not work together with this option as "virtual"
 +groups will not be present in the checkgroups file.
 +
  =item B<-r>, B<--report> I<default|average|sums>
  
  Choose the report type: I<default>, I<average> or I<sums>
This page took 0.012215 seconds and 4 git commands to generate.