]> git.deb.at Git - deb/packages.git/blob - lib/Packages/CGI.pm
Move $debug_allowed to CGI as a real constant and modify all debug() calls
[deb/packages.git] / lib / Packages / CGI.pm
1 package Packages::CGI;
2
3 use Exporter;
4 our @ISA = qw( Exporter );
5 our @EXPORT = qw( fatal_error error hint debug msg note
6                   print_errors print_hints print_debug print_msgs
7                   print_notes DEBUG );
8
9 # define this to 0 in production mode
10 use constant DEBUG => 1;
11 our $debug = 0;
12
13 our (@fatal_errors, @errors, @debug, @msgs, @hints, @notes);
14
15 sub reset {
16     @fatal_errors = @errors = @debug = @msgs = @hints = @notes = ();
17 }
18
19 sub fatal_error {
20     push @fatal_errors, $_[0];
21 }
22 sub error {
23     push @errors, $_[0];
24 }
25 sub hint {
26     push @hints, $_[0];
27 }
28 sub debug {
29     my $lvl = $_[1] || 0;
30     push(@debug, $_[0]) if $debug > $lvl;
31 }
32 sub msg {
33     push @msgs, $_[0];
34 }
35 sub note {
36     push @notes, [ @_ ];
37 }
38 sub print_errors {
39     return unless @fatal_errors || @errors;
40     print '<div class="perror">';
41     foreach ((@fatal_errors, @errors)) {
42         print "<p>ERROR: $_</p>";
43     }
44     print '</div>';
45 }
46 sub print_debug {
47     return unless $debug && @debug;
48     print '<div class="pdebug">';
49     print '<h2>Debugging:</h2><pre>';
50     foreach (@debug) {
51         print "$_\n";
52     }
53     print '</pre></div>';
54 }
55 sub print_hints {
56     return unless @hints;
57     print '<div class="phints">';
58     foreach (@hints) {
59         print "<p>$_</p>";
60     }
61     print '</div>';
62 }
63 sub print_msgs {
64     print '<div class="pmsgs">';
65     foreach (@msgs) {
66         print "<p>$_</p>";
67     }
68     print '</div>';
69 }
70 sub print_notes {
71     foreach (@notes) {
72         my ( $title, $note ) = @$_;
73
74         print '<div class="pnotes">';
75         if ($note) {
76             print "<h2>$title</h2>";
77         } else {
78             $note = $title;
79         }
80         print "<p>$note</p></div>";
81     }
82 }
83
84 1;