2 # debbugsconfig: copies debbugs configuration files from templates, and
3 # creates documentation in HTML and text
4 # Copyright (C) 1999 Darren Benham
5 # Copyright (C) 2000 Josip Rodin
6 # Licensed under the version 2 of the GNU General Public License as
7 # published by the Free Software Foundation
9 use POSIX qw(strftime);
15 debbugsconfig will copy basic debbugs configuration files from templates
18 It will also create BTS user documentation in HTML and text.
24 $gConfigDir = "/etc/debbugs" if (!defined($gConfigDir));
25 &template("config", $gConfigDir);
26 require "$gConfigDir/config";
27 unshift @INC, $gConfigDir;
29 &template("text", $gConfigDir);
32 &template("Maintainers", $gConfigDir);
33 &template("Maintainers.override", $gConfigDir);
34 &template("pseudo-packages.description", $gConfigDir);
35 &template("sources", "$gConfigDir/indices");
37 &template("nextnumber", $gSpoolDir);
38 &touch("$gSpoolDir/index.archive.realtime");
39 &touch("$gSpoolDir/index.db.realtime");
41 # stuff used when testing (comment out the above)
43 #require "../scripts/config.in";
44 #require "../scripts/text.in";
45 #$gWebDir = "gWebDir";
46 #$gDocDir = "gWebDir";
48 my $dtime = strftime "%a, %e %b %Y %T UTC", localtime;
49 $gHTMLTail =~ s/SUBSTITUTE_DTIME/$dtime/;
51 print "Creating files in $gWebDir:\n";
52 require('html/index.html.in');
53 &writefiles ('index', '', $gIndexHtml );
54 require('html/Access.html.in');
55 &writefiles ('Access', 'bug-log-access', $gAccessHtml );
56 require('html/Developer.html.in');
57 &writefiles ('Developer', 'bug-maint-info', $gDeveloperHtml );
58 require('html/Reporting.html.in');
59 &writefiles ('Reporting', 'bug-reporting', $gReportingHtml );
60 require('html/server-control.html.in');
61 &writefiles ('server-control', 'bug-maint-mailcontrol', $gControlHtml );
62 require('html/server-refcard.html.in');
63 &writefiles ('server-refcard', 'bug-mailserver-refcard', $gRefcardHtml );
64 require('html/server-request.html.in');
65 &writefiles ('server-request', 'bug-log-mailserver', $gRequestHtml );
70 # -------------------------------------------------------------------------- #
73 my ($name, $destdir) = @_;
74 if (! -f "$destdir/$name") {
75 system("cp /usr/share/doc/debbugs/examples/$name $destdir/$name") == 0 ||
77 print "created $destdir/$name from template.\n";
84 open TOUCH, ">> $name" or die "open $name: $!";
86 print "created empty $name.\n";
91 local ($html, $text, $name) = @_;
93 unlink("$gWebDir/$html.html");
94 open(DEST, ">$gWebDir/$html.html") || die "\n$gWebDir/$html.html: $!";
99 return if ($text eq ""); # for index.html
100 # This should be done with pipes instead of a temporary files, but lynx
101 # doesn't read HTML from stdin :/
102 open(DEST, ">$gDocDir/$text.html") || die "\n$gDocDir/$text.html: $!";
103 $name =~ s,\nOther pages:\n.*?<hr>,,si;
106 unlink("$gDocDir/$text.txt");
107 $ENV{'HOME'} = "/tmp";
108 $ENV{'TERM'} = "linux";
109 if (-x "/usr/bin/links") {
110 system ("rm -rf /tmp/.links/") == 0 || die;
111 system ("links -dump $gDocDir/$text.html > $gDocDir/$text.txt") == 0 ||
112 die "\nunable to write $gDocDir/$text.txt\n";
113 system ("rm -rf /tmp/.links/");
114 } elsif (-x "/usr/bin/lynx") {
115 system ("lynx -nolist -dump -cfg=/dev/null $gDocDir/$text.html > $gDocDir/$text.txt") == 0 ||
116 die "\nunable to write $gDocDir/$text.txt\n";
118 print "unable to write text versions of the HTMLs!";
119 print "if you need them, install links or lynx and run debbugsconfig again";
122 unlink("$gDocDir/$text.html") || die "\ncan't remove temporary file $gDocDir/$text.html: $!";