From: doogie <> Date: Sun, 15 Jul 2001 16:46:16 +0000 (-0800) Subject: [project @ 2001-07-15 09:46:16 by doogie] X-Git-Tag: release/2.6.0~1128 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=b04b187283a1444886e6e48e7e1351b9a2b90f75;p=debbugs.git [project @ 2001-07-15 09:46:16 by doogie] Add support for tracing of bug state changes. This date is in $gSpoolDir/debbugs.trace. It is locked(as debbugs.trace.lock) while accessed, and appended to. Currently, nothing uses this trace file. In fact, it isn't even cleaned up, as it grows without bound. But this can be easily fixed with a simple cron job. --- diff --git a/scripts/errorlib.in b/scripts/errorlib.in index fc775643..338b7c17 100755 --- a/scripts/errorlib.in +++ b/scripts/errorlib.in @@ -1,5 +1,5 @@ # -*- perl -*- -# $Id: errorlib.in,v 1.3 1999/12/01 18:04:01 gecko Exp $ +# $Id: errorlib.in,v 1.4 2001/07/15 09:46:16 doogie Exp $ sub F_SETLK { 6; } sub F_WRLCK{ 1; } $flockstruct= 'sslll'; # And there ought to be something for this too. @@ -97,6 +97,25 @@ sub sani { $out; } +sub bughook { + my ( $type, $ref ) = ( shift, shift ); + &filelock("debbugs.trace.lock"); + &appendfile("debbugs.trace","$type $ref\n",@_); + &unfilelock; +} + +sub appendfile { + my $file = shift; + if (!open(AP,">>$file")) { + print DEBUG "failed open log<\n"; + print DEBUG "failed open log err $!<\n"; + &quit("opening db/$ref.log (li): $!"); + } + print(AP @_) || &quit("writing $file (appendfile): $!"); + close(AP) || &quit("closing $file (appendfile): $!"); +} + + @severities= @gSeverityList; @showseverities= @severities; grep ($_= $_ eq '' ? $gDefaultSeverity : $_, @showseverities); diff --git a/scripts/process.in b/scripts/process.in index 32a2c3b5..7016305c 100755 --- a/scripts/process.in +++ b/scripts/process.in @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $Id: process.in,v 1.29 2001/05/12 18:37:45 joy Exp $ +# $Id: process.in,v 1.30 2001/07/15 09:46:16 doogie Exp $ # # Usage: process nn # Temps: incoming/Pnn @@ -264,6 +264,9 @@ END &overwrite("db/$ref.status", "$s_originator\n$s_date\n$s_subject\n$s_msgid\n". "$s_package\n$s_keywords\n$s_done\n$s_forwarded\n$s_mergedwith\n$s_severity\n"); + &bughook('change',$ref, + "$s_originator\n$s_date\n$s_subject\n$s_msgid\n". + "$s_package\n$s_keywords\n$s_done\n$s_forwarded\n$s_mergedwith\n$s_severity\n"); open(O,"db/$ref.report") || &quit("read original report: $!"); $x= join('',); close(O); if ($codeletter eq 'F') @@ -476,6 +479,9 @@ END &overwrite("db/$ref.status", "$replyto\n$intdate\n$subject\n$header{'message-id'}\n". "$s_package\n$s_keywords\n\n\n\n$s_severity\n"); + &bughook('new',$ref, + "$replyto\n$intdate\n$subject\n$header{'message-id'}\n". + "$s_package\n$s_keywords\n\n\n\n$s_severity\n"); &overwrite("db/$ref.report", join("\n",@msg)."\n"); } diff --git a/scripts/service.in b/scripts/service.in index 7f733bc0..da411473 100755 --- a/scripts/service.in +++ b/scripts/service.in @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $Id: service.in,v 1.36 2001/05/02 20:13:49 joy Exp $ +# $Id: service.in,v 1.37 2001/07/15 09:46:16 doogie Exp $ # ^ more or less ^ # # Usage: service .nn @@ -806,6 +806,17 @@ sub savebug { close(S) || &quit("closing db/$ref.status.new: $!"); rename("db/$ref.status.new","db/$ref.status") || &quit("installing new db/$ref.status: $!"); + &bughook('change',$ref, + "$s_originator\n". + "$s_date\n". + "$s_subject\n". + "$s_msgid\n". + "$s_package\n". + "$s_keywords\n". + "$s_done\n". + "$s_forwarded\n". + "$s_mergedwith\n". + "$s_severity\n"); &unfilelock; $lowstate= "idle"; &dlex("savebug");