]> git.donarmstrong.com Git - debbugs.git/blob - scripts/html-control.in
3e0a538c560c3d55c5103f5c6137378e9410dd17
[debbugs.git] / scripts / html-control.in
1 #!/usr/bin/perl
2
3 use POSIX;
4
5 require '/etc/debbugs/config';
6 require '/usr/lib/debbugs/errorlib';
7 $ENV{'PATH'}= '/usr/lib/debbugs'.$ENV{'PATH'};
8 chdir("$gSpoolDir") || die "chdir spool: $!\n";
9 #push(@INC,'/usr/lib/debbugs');
10
11 &filelock("html.fcntl-lock");
12
13 unlink("html-data.gz") || $!==&ENOENT or &quit("remove html-data.gz: $!");
14
15 sub nonawful ($) {
16     rename("stamp.html.run","stamp.html") or warn "warning: put back stamp.html: $!";
17     &quit($_[0]);
18 }
19
20 if (open(US,'updateseqs') && -f 'stamp.html') {
21     chop($lastmain=<US>);
22     chop($lastsub=<US>);
23     close(US);
24
25     $lastsub++;
26     $args= "-diff -stampfile=stamp.html.run";
27     rename("stamp.html","stamp.html.run") or &quit("rename stamp.html: $!");
28 } else {
29     $lastsub=0;
30     chop($lastmain=`TZ=GMT date '+%Y%m%d%H%M%S'`);
31     $args= '-full';
32     unlink('stamp.html') || $!==&ENOENT or &quit("excise stale stamp.html: $!");
33 }
34
35 open(X,">stamp.html.new") or &quit("stamp.html.new: $!");
36 close(X) or &quit("close stamp.html.new: $!");
37
38 open(US,'>updateseqs.new') || &quit("create updateseqs.new: $!");
39 print(US "$lastmain\n$lastsub\n") || &quit("write updateseqs.new: $!");
40 close(US) || &quit("close updateseqs.new: $!");
41 rename('updateseqs.new','updateseqs') or nonawful("install updateseqs: $!");
42
43 sub runshell ($&) {
44     my ($cmd,$errhref) = @_;
45     print "xx $cmd\n";
46     system $cmd;
47     !$? && !length($stderr) or &$errhref("$cmd failed - gave $? / $stderr");
48 }
49
50 $sequences="$lastmain $lastsub";
51 $seqmid= $sequences; $seqmid =~ y/ /-/;
52 open(MM,">html-data.mail") or nonawful("open html-data.mail: $!");
53 if ( length( $gListDomain ) > 0 && length( $gMirrorList ) > 0 ) {
54 print(MM <<END
55 From: $gMaintainerEmail ($gMaintainer)
56 To: $gMirrorList\@$gListDomain
57 Subject: $gProject $gBugs autoupdate 259012
58 Message-ID: <handle.htmlup.$seqmid\@gEmailDebian>
59 X-$gProject=PR: update $sequences
60
61 END
62       ) or nonawful("write html-data.mail header: $!");
63 } else {
64 print(MM <<END
65 From: $gMaintainerEmail ($gMaintainer)
66 To: $gMaintainerEmail
67 Subject: $gProject $gBugs autoupdate 259012
68 Message-ID: <handle.htmlup.$seqmid\@gEmailDebian>
69 X-$gProject=PR: update $sequences
70
71 END
72       ) or nonawful("write html-data.mail header: $!");
73 }
74 close(MM) or nonawful("close html-data.mail: $!");
75
76 runshell("/usr/lib/debbugs/db2html $args 2>&1 >html-data $gWebDir/db",
77          sub { &nonawful; });
78 runshell("/usr/lib/debbugs/html-install $gWebDir/db <html-data 2>&1",sub { &quit; });
79 runshell("gzip -9 html-data 2>&1",sub { &quit; });
80 #runshell("btoa 2>&1 <html-data.gz >>html-data.mail",sub { &quit; });
81 #runshell('2>&1 '.join(' ',('/usr/lib/sendmail','-f'."$gMaintainerEmail")).' -oem -oi -t <html-data.mail',
82 #         sub { &quit; });
83
84 rename("stamp.html.new","stamp.html") or &quit("install new stamp.html: $!");
85
86 unlink("html-data.gz") or warn "remove html-data.gz: $!";
87 unlink("html-data.mail") or warn "remove html-data.mail: $!";
88 unlink("stamp.html.run") || $!==&ENOENT or warn "remove stamp.html.run: $!";
89
90 print "sequences $lastmain $lastsub\n";
91
92 &unfilelock();
93 exit(0);