X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Frebuild.in;h=6c98f2545dba5f87bc325b2df921ba4a5d6b6f2e;hb=2ce5407f0c170772e24eba56b97e96b74764d86e;hp=7646eae4ca4a06de79f1d956e56527937b3c1232;hpb=38d415456c6e61741707d8262b923a93153b54d7;p=debbugs.git diff --git a/scripts/rebuild.in b/scripts/rebuild.in index 7646eae..6c98f25 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.13 2003/08/23 15:12:57 cjwatson Exp $ # Load modules and set environment use File::Copy; @@ -8,45 +8,53 @@ $lib_path = '/usr/lib/debbugs'; require("$config_path/config"); require("$lib_path/errorlib"); +use vars qw($gSpoolDir); + $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" ); -$archive= shift(@ARGV); -open IDXFILE, "> index.$archive" or &quit( "trying to reset index file: $!" ); +@ARGV==0 and &quit( "no archive given on the commandline" ); +my $archive = shift(@ARGV); +my $index = "index.$archive"; +$index = 'index.db' if $archive eq 'db-h'; +open IDXFILE, "> $index" 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+\.summary$/,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}; - } + grep(s/\.summary$//,@list); + 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;