summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xchecksetup.pl40
-rwxr-xr-xcollectstats.pl2
-rwxr-xr-xreports.cgi2
3 files changed, 29 insertions, 15 deletions
diff --git a/checksetup.pl b/checksetup.pl
index d324b6314..a0a729876 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -1788,7 +1788,7 @@ if (!($sth->fetchrow_arrayref()->[0])) {
# If the graphs dir is not present, we assume that they have been using
# a Bugzilla with the old data format, and so upgrade their data files.
unless (-d 'graphs') {
- print "Creating graphs directory ...\n";
+ print "Creating graphs directory...\n";
mkdir 'graphs', 0770;
if ($::webservergroup eq "") {
chmod 0777, 'graphs';
@@ -1797,13 +1797,18 @@ unless (-d 'graphs') {
# Upgrade data format
foreach my $in_file (glob("data/mining/*"))
{
- # Don't try and upgrade image files!
- if (($in_file =~ /\.gif$/i) || ($in_file =~ /\.png$/i)) {
+ # Don't try and upgrade image or db files!
+ if (($in_file =~ /\.gif$/i) ||
+ ($in_file =~ /\.png$/i) ||
+ ($in_file =~ /\.db$/i) ||
+ ($in_file =~ /\.orig$/i)) {
next;
}
- open(IN, $in_file) or next;
-
+ rename("$in_file", "$in_file.orig") or next;
+ open(IN, "$in_file.orig") or next;
+ open(OUT, ">$in_file") or next;
+
# Fields in the header
my @declared_fields = ();
@@ -1814,17 +1819,17 @@ unless (-d 'graphs') {
RESOLVED VERIFIED CLOSED);
# Fields we actually want (matches the current collectstats.pl)
- my @out_fields = qw(DATE NEW ASSIGNED REOPENED UNCONFIRMED
- VERIFIED CLOSED FIXED INVALID WONTFIX LATER REMIND
+ my @out_fields = qw(DATE NEW ASSIGNED REOPENED UNCONFIRMED RESOLVED
+ VERIFIED CLOSED FIXED INVALID WONTFIX LATER REMIND
DUPLICATE WORKSFORME MOVED);
while (<IN>) {
- if (/^# fields: (.*)\s$/) {
- @declared_fields = map uc, (split /\|/, $1);
- print "# fields: ", join('|', @out_fields), "\n";
+ if (/^# fields?: (.*)\s$/) {
+ @declared_fields = map uc, (split /\||\r/, $1);
+ print OUT "# fields: ", join('|', @out_fields), "\n";
}
elsif (/^(\d+\|.*)/) {
- my @data = split /\|/, $1;
+ my @data = split /\||\r/, $1;
my %data = ();
if (@data == @declared_fields) {
# old format
@@ -1838,19 +1843,28 @@ unless (-d 'graphs') {
$data{$intermediate_fields[$i]} = $data[$i];
}
}
+ elsif (@data == @out_fields) {
+ # This line's fine - it has the right number of entries
+ for my $i (0 .. $#out_fields) {
+ $data{$out_fields[$i]} = $data[$i];
+ }
+ }
else {
print "Oh dear, input line $. of $in_file had " . scalar(@data) . " fields\n";
print "This was unexpected. You may want to check your data files.\n";
}
- print join('|', map { $data{$_} || "" } @out_fields), "\n";
+ print OUT join('|', map {
+ defined ($data{$_}) ? ($data{$_}) : ""
+ } @out_fields), "\n";
}
else {
- print;
+ print OUT;
}
}
close(IN);
+ close(OUT);
}
}
diff --git a/collectstats.pl b/collectstats.pl
index e2daa97f6..66bbbfc19 100755
--- a/collectstats.pl
+++ b/collectstats.pl
@@ -102,7 +102,7 @@ sub collect_stats {
#
# Do not edit me! This file is generated.
#
-# fields: DATE|NEW|ASSIGNED|REOPENED|UNCONFIRMED|FIXED|INVALID|WONTFIX|LATER|REMIND|DUPLICATE|WORKSFORME|MOVED
+# fields: DATE|NEW|ASSIGNED|REOPENED|UNCONFIRMED|RESOLVED|VERIFIED|CLOSED|FIXED|INVALID|WONTFIX|LATER|REMIND|DUPLICATE|WORKSFORME|MOVED
# Product: $product
# Created: $when
FIN
diff --git a/reports.cgi b/reports.cgi
index 0287e07ff..b54a91b0e 100755
--- a/reports.cgi
+++ b/reports.cgi
@@ -566,7 +566,7 @@ sub generate_chart {
next unless $_;
if (/^#/) {
if (/^# fields?: (.*)\s*$/) {
- @fields = split /\|/, $1;
+ @fields = split /\||\r/, $1;
&die_politely("`# fields: ' line didn't start with DATE, but with $fields[0]")
unless $fields[0] =~ /date/i;
push @labels, grep($datasets{$_}, @fields);