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