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));
21 &template("config", $gConfigDir);
22 require "$gConfigDir/config";
23 unshift @INC, $gConfigDir;
25 &template("text", $gConfigDir);
28 &template("Maintainers", $gConfigDir);
29 &template("Maintainers.override", $gConfigDir);
30 &template("pseudo-packages.description", $gConfigDir);
31 &template("sources", "$gConfigDir/indices");
33 &template("nextnumber", $gSpoolDir);
34 &touch("$gSpoolDir/index.archive.realtime");
35 &touch("$gSpoolDir/index.db.realtime");
37 # stuff used when testing (comment out the above)
39 #require "../scripts/config.in";
40 #require "../scripts/text.in";
41 #$gWebDir = "gWebDir";
42 #$gDocDir = "gWebDir";
44 my $dtime = strftime "%a, %e %b %Y %T UTC", localtime;
45 $gHTMLTail =~ s/SUBSTITUTE_DTIME/$dtime/;
47 print "Creating files in $gWebDir:\n";
48 require('html/index.html.in');
49 &writefiles ('index', '', $gIndexHtml );
50 require('html/Access.html.in');
51 &writefiles ('Access', 'bug-log-access', $gAccessHtml );
52 require('html/Developer.html.in');
53 &writefiles ('Developer', 'bug-maint-info', $gDeveloperHtml );
54 require('html/Reporting.html.in');
55 &writefiles ('Reporting', 'bug-reporting', $gReportingHtml );
56 require('html/server-control.html.in');
57 &writefiles ('server-control', 'bug-maint-mailcontrol', $gControlHtml );
58 require('html/server-refcard.html.in');
59 &writefiles ('server-refcard', 'bug-mailserver-refcard', $gRefcardHtml );
60 require('html/server-request.html.in');
61 &writefiles ('server-request', 'bug-log-mailserver', $gRequestHtml );
66 # -------------------------------------------------------------------------- #
69 my ($name, $destdir) = @_;
70 if (! -f "$destdir/$name") {
71 system("cp /usr/share/doc/debbugs/examples/$name $destdir/$name") == 0 ||
73 print "created $destdir/$name from template.\n";
80 open TOUCH, ">> $name" or die "open $name: $!";
82 print "created empty $name.\n";
87 local ($html, $text, $name) = @_;
89 unlink("$gWebDir/$html.html");
90 open(DEST, ">$gWebDir/$html.html") || die "\n$gWebDir/$html.html: $!";
95 return if ($text eq ""); # for index.html
96 # This should be done with pipes instead of a temporary files, but lynx
97 # doesn't read HTML from stdin :/
98 open(DEST, ">$gDocDir/$text.html") || die "\n$gDocDir/$text.html: $!";
99 $name =~ s,\nOther pages:\n.*?<hr>,,si;
102 unlink("$gDocDir/$text.txt");
103 $ENV{'HOME'} = "/tmp";
104 $ENV{'TERM'} = "linux";
105 if (-x "/usr/bin/links") {
106 system ("rm -rf /tmp/.links/") == 0 || die;
107 system ("links -dump $gDocDir/$text.html > $gDocDir/$text.txt") == 0 ||
108 die "\nunable to write $gDocDir/$text.txt\n";
109 system ("rm -rf /tmp/.links/");
110 } elsif (-x "/usr/bin/lynx") {
111 system ("lynx -nolist -dump -cfg=/dev/null $gDocDir/$text.html > $gDocDir/$text.txt") == 0 ||
112 die "\nunable to write $gDocDir/$text.txt\n";
114 print "unable to write text versions of the HTMLs!";
115 print "if you need them, install links or lynx and run debbugsconfig again";
118 unlink("$gDocDir/$text.html") || die "\ncan't remove temporary file $gDocDir/$text.html: $!";