[lintian] 01/13: r/html_reports: Move history+graph generation into a sub
This is an automated email from the git hooks/post-receive script.
nthykier pushed a commit to branch master
in repository lintian.
commit 72abb8374593ef83b00b2ebbb40168d883fb2a3c
Author: Niels Thykier <niels@thykier.net>
Date: Sat Feb 21 17:31:35 2015 +0100
r/html_reports: Move history+graph generation into a sub
Signed-off-by: Niels Thykier <niels@thykier.net>
---
reporting/html_reports | 187 +++++++++++++++++++++++++------------------------
1 file changed, 97 insertions(+), 90 deletions(-)
diff --git a/reporting/html_reports b/reporting/html_reports
index d70d3bf..f3e591d 100755
--- a/reporting/html_reports
+++ b/reporting/html_reports
@@ -686,107 +686,114 @@ close($stats_fd);
);
output_template('index.html', $templates{index}, \%data);
-exit 0 if (not $HISTORY);
-
-# Update history.
-my %versions = ();
-my $graph_dir = "$HTML_TMP_DIR/graphs";
-my $commonf = "$graph_dir/common.gpi";
-my $unix_time = time();
-mkdir("$HISTORY_DIR")
- if (not -d "$HISTORY_DIR");
-mkdir("$HISTORY_DIR/tags")
- if (not -d "$HISTORY_DIR/tags");
-
-my $history_file = "$HISTORY_DIR/statistics.dat";
-my $stats = '';
-for my $attr (@attrs) {
- $stats .= " $statistics{$attr}";
+if ($HISTORY) {
+ update_history_and_make_graphs();
}
-open(my $hist_fd, '+>>', $history_file);
-print {$hist_fd} "$unix_time $LINTIAN_VERSION$stats\n";
-
-if ($GRAPHS) {
- seek($hist_fd, 0, SEEK_SET);
- while (<$hist_fd>) {
- my @fields = split();
- $versions{$fields[1]} = $fields[0] if not exists $versions{$fields[1]};
+
+exit 0;
+
+# ------------------------------
+# Utility functions
+
+sub update_history_and_make_graphs {
+ # Update history.
+ my %versions;
+ my $graph_dir = "$HTML_TMP_DIR/graphs";
+ my $commonf = "$graph_dir/common.gpi";
+ my $unix_time = time();
+ mkdir("$HISTORY_DIR")
+ if (not -d "$HISTORY_DIR");
+ mkdir("$HISTORY_DIR/tags")
+ if (not -d "$HISTORY_DIR/tags");
+
+ my $history_file = "$HISTORY_DIR/statistics.dat";
+ my $stats = '';
+ for my $attr (@attrs) {
+ $stats .= " $statistics{$attr}";
}
-}
-close($hist_fd);
-
-if ($GRAPHS) {
- mkdir("$graph_dir", 0777);
- mkdir("$graph_dir/tags", 0777);
-
- my $date_min
- = strftime('%s', localtime($unix_time - 3600 * 24 * $GRAPHS_RANGE_DAYS));
- my $date_max = strftime('%s', localtime($unix_time));
-
- # Generate loadable Gnuplot file with common variables and labels/arrows
- # for Lintian versions.
- open(my $common, '>', $commonf);
- print {$common} "history_dir='$HISTORY_DIR'\n";
- print {$common} "graph_dir='$graph_dir'\n";
- print {$common} "date_min='$date_min'\n";
- print {$common} "date_max='$date_max'\n";
- my $last_version = 0;
- for my $v (sort { $versions{$a} <=> $versions{$b} } keys %versions) {
- next unless $versions{$v} > $date_min;
-
- print {$common} "set arrow from '$versions{$v}',graph 0 to ",
- "'$versions{$v}',graph 1 nohead lw 0.4\n";
-
- # Skip label if previous release is too close; graphs can't display
- # more than ~32 labels.
- my $min_spacing = 3600 * 24 * $GRAPHS_RANGE_DAYS / 32;
- if ($versions{$v} - $last_version > $min_spacing) {
- (my $label = $v) =~ s/\-[\w\d]+$//;
- print {$common} "set label '$label' at '$versions{$v}',graph ",
- "1.04 rotate by 90 font ',8'\n";
- }
+ open(my $hist_fd, '+>>', $history_file);
+ print {$hist_fd} "$unix_time $LINTIAN_VERSION$stats\n";
- $last_version = $versions{$v};
+ if ($GRAPHS) {
+ seek($hist_fd, 0, SEEK_SET);
+ while (<$hist_fd>) {
+ my @fields = split();
+ $versions{$fields[1]} = $fields[0]
+ if not exists $versions{$fields[1]};
+ }
}
- close($common);
+ close($hist_fd);
- print "Plotting global statistics...\n";
- chdir_system($graph_dir,
- ['gnuplot', "$LINTIAN_ROOT/reporting/graphs/statistics.gpi"]) == 0
- or die "gnuplot died with $?\n";
-}
+ if ($GRAPHS) {
+ mkdir("$graph_dir", 0777);
+ mkdir("$graph_dir/tags", 0777);
+
+ my $date_min
+ = strftime('%s',
+ localtime($unix_time - 3600 * 24 * $GRAPHS_RANGE_DAYS));
+ my $date_max = strftime('%s', localtime($unix_time));
+
+ # Generate loadable Gnuplot file with common variables and labels/arrows
+ # for Lintian versions.
+ open(my $common, '>', $commonf);
+ print {$common} "history_dir='$HISTORY_DIR'\n";
+ print {$common} "graph_dir='$graph_dir'\n";
+ print {$common} "date_min='$date_min'\n";
+ print {$common} "date_max='$date_max'\n";
+ my $last_version = 0;
+ for my $v (sort { $versions{$a} <=> $versions{$b} } keys %versions) {
+ next unless $versions{$v} > $date_min;
+
+ print {$common} "set arrow from '$versions{$v}',graph 0 to ",
+ "'$versions{$v}',graph 1 nohead lw 0.4\n";
+
+ # Skip label if previous release is too close; graphs can't display
+ # more than ~32 labels.
+ my $min_spacing = 3600 * 24 * $GRAPHS_RANGE_DAYS / 32;
+ if ($versions{$v} - $last_version > $min_spacing) {
+ (my $label = $v) =~ s/\-[\w\d]+$//;
+ print {$common} "set label '$label' at '$versions{$v}',graph ",
+ "1.04 rotate by 90 font ',8'\n";
+ }
-my $gnuplot_fd;
-if ($GRAPHS) {
- open($gnuplot_fd, '>', "$graph_dir/call.gpi");
-}
+ $last_version = $versions{$v};
+ }
+ close($common);
-for my $tag (sort keys %tag_statistics) {
- $history_file = "$HISTORY_DIR/tags/$tag.dat";
- $stats = $tag_statistics{$tag};
- open(my $tag_fd, '>>', $history_file);
- print {$tag_fd} "$unix_time $stats->{'count'} $stats->{'overrides'} "
- ."$stats->{'packages'}\n";
- close($tag_fd);
- if ($GRAPHS) {
- print {$gnuplot_fd} qq{print 'Plotting $tag statistics...'\n};
- print {$gnuplot_fd}
- qq{call '$LINTIAN_ROOT/reporting/graphs/tags.gpi' '$tag'\n};
- print {$gnuplot_fd} qq{reset\n};
+ print "Plotting global statistics...\n";
+ chdir_system($graph_dir,
+ ['gnuplot', "$LINTIAN_ROOT/reporting/graphs/statistics.gpi"]) == 0
+ or die "gnuplot died with $?\n";
}
-}
-if ($GRAPHS) {
- close($gnuplot_fd);
- chdir_system($graph_dir, ['gnuplot', 'call.gpi']) == 0
- or die("gnuplot died with $?\n");
- unlink($commonf);
-}
+ my $gnuplot_fd;
+ if ($GRAPHS) {
+ open($gnuplot_fd, '>', "$graph_dir/call.gpi");
+ }
-exit 0;
+ for my $tag (sort keys %tag_statistics) {
+ $history_file = "$HISTORY_DIR/tags/$tag.dat";
+ $stats = $tag_statistics{$tag};
+ open(my $tag_fd, '>>', $history_file);
+ print {$tag_fd} "$unix_time $stats->{'count'} $stats->{'overrides'} "
+ ."$stats->{'packages'}\n";
+ close($tag_fd);
+ if ($GRAPHS) {
+ print {$gnuplot_fd} qq{print 'Plotting $tag statistics...'\n};
+ print {$gnuplot_fd}
+ qq{call '$LINTIAN_ROOT/reporting/graphs/tags.gpi' '$tag'\n};
+ print {$gnuplot_fd} qq{reset\n};
+ }
+ }
-# ------------------------------
-# Utility functions
+ if ($GRAPHS) {
+ close($gnuplot_fd);
+ chdir_system($graph_dir, ['gnuplot', 'call.gpi']) == 0
+ or die("gnuplot died with $?\n");
+ unlink($commonf);
+ }
+ return;
+}
# Determine the file name for the maintainer page given a maintainer. It
# should be <email>.html where <email> is their email address with all
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/lintian/lintian.git
Reply to: