From: cjwatson <> Date: Sun, 25 May 2003 20:13:18 +0000 (-0800) Subject: [project @ 2003-05-25 13:13:18 by cjwatson] X-Git-Tag: release/2.6.0~899 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=fc5744be2dc5c19b9cc30387868d8150abe9bc6c;p=debbugs.git [project @ 2003-05-25 13:13:18 by cjwatson] Make rebuild actually work (even its command-line processing was broken so that it could never possibly work ...). Update index format to that expected by the rest of debbugs. --- diff --git a/scripts/rebuild.in b/scripts/rebuild.in index 7646eae4..fd1dbfbc 100755 --- a/scripts/rebuild.in +++ b/scripts/rebuild.in @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# $Id: rebuild.in,v 1.8 2003/05/25 12:38:58 cjwatson Exp $ +# $Id: rebuild.in,v 1.9 2003/05/25 13:13:18 cjwatson Exp $ # Load modules and set environment use File::Copy; @@ -11,42 +11,46 @@ require("$lib_path/errorlib"); $ENV{'PATH'} = $lib_path.':'.$ENV{'PATH'}; chdir("$gSpoolDir") || die "chdir spool: $!\n"; -my $data; - -sub readreport { - my $lref = shift; - my $path = shift; - - $data = readbug($lref); - return 1; -} #global variables $debug = 0; -defined($startdate= time) || &quit("failed to get time: $!"); -@ARGV==0 or &quit( "no archive given on the commandline" ); +@ARGV==0 and &quit( "no archive given on the commandline" ); $archive= shift(@ARGV); open IDXFILE, "> index.$archive" or &quit( "trying to reset index file: $!" ); #get list of bugs (ie, status files) +my @files; for ($subdir=0; $subdir<100; $subdir++ ) { my $path = sprintf( "$archive/%.2d", $subdir ); opendir(DIR,$path) || next; - @list= grep(m/^\d+\.status$/,readdir(DIR)); + my @list= grep(m/^\d+\.status$/,readdir(DIR)); closedir DIR; grep(s/\.status$//,@list); - @list= sort { $a <=> $b } @list; - - #process each bug (ie, status file) - while ( defined( $list[0] )) - { - my $ref = shift @list; - print STDERR "$ref considering\n" if $debug; - readreport($ref, $path); - printf IDXFILE "%s %d %s\n", $data->{package}, $ref, $data->{subject}; - } + push @files, @list; +} + +@files = sort { $a <=> $b } @files; + +#process each bug (ie, status file) +for my $ref (@files) +{ + print STDERR "$ref considering\n" if $debug; + my $data = readbug($ref, $archive); + $data->{severity} =~ y/A-Z/a-z/; + + (my $pkglist = $data->{package}) =~ s/[,\s]+/,/g; + $pkglist =~ s/^,+//; + $pkglist =~ s/,+$//; + + my $whendone = 'open'; + $whendone = 'forwarded' if length $data->{forwarded}; + $whendone = 'done' if length $data->{done}; + + printf IDXFILE "%s %d %d %s [%s] %s %s\n", + $pkglist, $ref, $data->{date}, $whendone, $data->{originator}, + $data->{severity}, $data->{keywords}; } close IDXFILE;