]> git.donarmstrong.com Git - debbugs.git/blob - debian/debbugsconfig
[project @ 2000-10-07 14:26:47 by joy]
[debbugs.git] / debian / debbugsconfig
1 #!/usr/bin/perl
2 # debbugsconfig: copies debbugs configuration files from templates, and
3 #                creates documentation in HTML and text
4
5 use POSIX qw(strftime);
6
7 if (@ARGV) {
8   print STDOUT <<EOF;
9 Usage: $0
10
11 debbugsconfig will copy basic debbugs configuration files from templates
12 if they don't exist.
13
14 It will also create BTS user documentation in HTML and text.
15
16 EOF
17   exit(0);
18 }
19
20 $gConfigDir = "/etc/debbugs" if (!defined($gConfigDir));
21 &template("config");
22 require "$gConfigDir/config";
23 unshift @INC, $gConfigDir;
24
25 &template("text");
26 require "text";
27
28 &template("nextnumber");
29
30 my $dtime = strftime "%a, %e %b %Y %T UTC", localtime;
31 $gHTMLTail =~ s/SUBSTITUTE_DTIME/$dtime/;
32
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 );
47
48 exit(0);
49
50 # -------------------------------------------------------------------------- #
51
52 sub template {
53   my ($name) = @_;
54   if (! -f "$gConfigDir/$name") {
55   system("cp /usr/share/doc/debbugs/examples/$name $gConfigDir/$name") == 0 ||
56         die "$!";
57   print "created $gConfigDir/$name from template.";
58   }
59
60
61 sub writefiles {
62   local ($html, $text, $name) = @_;
63 # first HTML
64   unlink("$gWebDir/$html.html");
65   open(DEST, ">$gWebDir/$html.html") || die "$gWebDir/$html.html: $!";
66   print DEST $name;
67   close(DEST);
68   print "wrote $gWebDir/$html.html\n";
69 # now text
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;
75   print DEST $name;
76   close(DEST);
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";
84 }