#!/usr/bin/perl -w # $Id: rebuild.in,v 1.13 2003/08/23 15:12:57 cjwatson Exp $ # Load modules and set environment use File::Copy; $config_path = '/etc/debbugs'; $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"; #global variables $debug = 0; @ARGV==0 and die "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 die "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; my @list= grep(m/^\d+\.summary$/,readdir(DIR)); closedir DIR; 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;