2 # debbugsconfig: copies debbugs configuration files from templates, and
3 # creates documentation in HTML and text
5 use POSIX qw(strftime);
11 debbugsconfig will copy basic debbugs configuration files from templates
14 It will also create BTS user documentation in HTML and text.
20 $gConfigDir = "/etc/debbugs" if (!defined($gConfigDir));
22 require "$gConfigDir/config";
23 unshift @INC, $gConfigDir;
28 &template("nextnumber");
30 my $dtime = strftime "%a, %e %b %Y %T UTC", localtime;
31 $gHTMLTail =~ s/SUBSTITUTE_DTIME/$dtime/;
33 require('html/index.html.in');
34 &writefiles ('index', '', $gIndexHtml );
35 require('html/Access.html.in');
36 &writefiles ('Access', 'bug-log-access', $gAccessHtml );
37 require('html/Developer.html.in');
38 &writefiles ('Developer', 'bug-maint-info', $gDeveloperHtml );
39 require('html/Reporting.html.in');
40 &writefiles ('Reporting', 'bug-reporting', $gReportingHtml );
41 require('html/server-control.html.in');
42 &writefiles ('server-control', 'bug-maint-mailcontrol', $gControlHtml );
43 require('html/server-refcard.html.in');
44 &writefiles ('server-refcard', 'bug-mailserver-refcard', $gRefcardHtml );
45 require('html/server-request.html.in');
46 &writefiles ('server-request', 'bug-log-mailserver', $gRequestHtml );
50 # -------------------------------------------------------------------------- #
54 if (! -f "$gConfigDir/$name") {
55 system("cp /usr/share/doc/debbugs/examples/$name $gConfigDir/$name") == 0 ||
57 print "created $gConfigDir/$name from template.";
62 local ($html, $text, $name) = @_;
64 unlink("$gWebDir/$html.html");
65 open(DEST, ">$gWebDir/$html.html") || die "$gWebDir/$html.html: $!";
68 print "wrote $gWebDir/$html.html\n";
70 return if ($text eq ""); # for index.html
71 # This should be done with pipes instead of a temporary files, but lynx
72 # doesn't read HTML from stdin :/
73 open(DEST, ">$gDocDir/$text.html") || die "$gDocDir/$text.html: $!";
74 $name =~ s,\nOther pages:\n.*?<hr>,,si;
77 unlink("$gDocDir/$text.txt");
78 $ENV{'HOME'} = "/dev/null";
79 $ENV{'TERM'} = "linux";
80 system ("lynx -nolist -dump -cfg=$gConfigDir/html/lynx-cfg $gDocDir/$text.html > $gDocDir/$text.txt") == 0 ||
81 die "unable to write $gDocDir/$text.txt\n";
82 unlink("$gDocDir/$text.html") || die "can't remove temporary file $gDocDir/$text.html: $!";
83 print "wrote $gDocDir/$text.txt\n";