/usr/sbin/debbugsconfig is in debbugs 2.4.1.1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | #!/usr/bin/perl
# debbugsconfig: copies debbugs configuration files from templates, and
# creates documentation in HTML and text
# Copyright (C) 1999 Darren Benham
# Copyright (C) 2000 Josip Rodin
# Licensed under the version 2 of the GNU General Public License as
# published by the Free Software Foundation
use POSIX qw(strftime);
if (@ARGV) {
print STDOUT <<EOF;
Usage: $0
debbugsconfig will copy basic debbugs configuration files from templates
if they don't exist.
It will also create BTS user documentation in HTML and text.
EOF
exit(0);
}
$gConfigDir = "/etc/debbugs" if (!defined($gConfigDir));
&template("config", $gConfigDir);
require "$gConfigDir/config";
unshift @INC, $gConfigDir;
&template("text", $gConfigDir);
require "text";
&template("Maintainers", $gConfigDir);
&template("Maintainers.override", $gConfigDir);
&template("pseudo-packages.description", $gConfigDir);
&template("sources", "$gConfigDir/indices");
&template("nextnumber", $gSpoolDir);
&touch("$gSpoolDir/index.archive.realtime");
&touch("$gSpoolDir/index.db.realtime");
# stuff used when testing (comment out the above)
#unshift @INC, "../";
#require "../scripts/config.in";
#require "../scripts/text.in";
#$gWebDir = "gWebDir";
#$gDocDir = "gWebDir";
my $dtime = strftime "%a, %e %b %Y %T UTC", localtime;
$gHTMLTail =~ s/SUBSTITUTE_DTIME/$dtime/;
print "Creating files in $gWebDir:\n";
require('html/index.html.in');
&writefiles ('index', '', $gIndexHtml );
require('html/Access.html.in');
&writefiles ('Access', 'bug-log-access', $gAccessHtml );
require('html/Developer.html.in');
&writefiles ('Developer', 'bug-maint-info', $gDeveloperHtml );
require('html/Reporting.html.in');
&writefiles ('Reporting', 'bug-reporting', $gReportingHtml );
require('html/server-control.html.in');
&writefiles ('server-control', 'bug-maint-mailcontrol', $gControlHtml );
require('html/server-refcard.html.in');
&writefiles ('server-refcard', 'bug-mailserver-refcard', $gRefcardHtml );
require('html/server-request.html.in');
&writefiles ('server-request', 'bug-log-mailserver', $gRequestHtml );
print "\n";
exit(0);
# -------------------------------------------------------------------------- #
sub template {
my ($name, $destdir) = @_;
if (! -f "$destdir/$name") {
system("cp /usr/share/debbugs/examples/$name $destdir/$name") == 0 ||
die "$!";
print "created $destdir/$name from template.\n";
}
}
sub touch {
my $name = shift;
unless (-f $name) {
open TOUCH, ">> $name" or die "open $name: $!";
close TOUCH;
print "created empty $name.\n";
}
}
sub writefiles {
local ($html, $text, $name) = @_;
# first HTML
unlink("$gWebDir/$html.html");
open(DEST, ">$gWebDir/$html.html") || die "\n$gWebDir/$html.html: $!";
print DEST $name;
close(DEST);
print "$html.html ";
# now text
return if ($text eq ""); # for index.html
# This should be done with pipes instead of a temporary files, but lynx
# doesn't read HTML from stdin :/
open(DEST, ">$gDocDir/$text.html") || die "\n$gDocDir/$text.html: $!";
$name =~ s,\nOther pages:\n.*?<hr>,,si;
print DEST $name;
close(DEST);
unlink("$gDocDir/$text.txt");
$ENV{'HOME'} = "/tmp";
$ENV{'TERM'} = "linux";
if (-x "/usr/bin/links") {
system ("rm -rf /tmp/.links/") == 0 || die;
system ("links -dump $gDocDir/$text.html > $gDocDir/$text.txt") == 0 ||
die "\nunable to write $gDocDir/$text.txt\n";
system ("rm -rf /tmp/.links/");
} elsif (-x "/usr/bin/lynx") {
system ("lynx -nolist -dump -cfg=/dev/null $gDocDir/$text.html > $gDocDir/$text.txt") == 0 ||
die "\nunable to write $gDocDir/$text.txt\n";
} else {
print "unable to write text versions of the HTMLs!";
print "if you need them, install links or lynx and run debbugsconfig again";
return;
}
unlink("$gDocDir/$text.html") || die "\ncan't remove temporary file $gDocDir/$text.html: $!";
print "$text.txt ";
}
|