X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Fgen-indices;h=1f0e7dfc9b75bf6c999df837a3c0615440cb5af5;hb=1e6633a3780f4fd53fc4303852e84d13cdad2dc6;hp=c929db6544565649c3b7a2d85c30232a2fc81fdc;hpb=1aaf096755dfe44e5d9077855f0c52df4fdeffd7;p=debbugs.git diff --git a/scripts/gen-indices b/scripts/gen-indices index c929db6..1f0e7df 100755 --- a/scripts/gen-indices +++ b/scripts/gen-indices @@ -18,7 +18,9 @@ use Getopt::Long; use Pod::Usage; use File::stat; -use List::Util qw(min); +use List::AllUtils qw(min); + +use Debbugs::Common qw(make_list); =head1 NAME @@ -39,7 +41,7 @@ gen-indices - Generates index files for the cgi scripts =over -=itme B<--quick> +=item B<--quick> Only update changed bugs @@ -79,8 +81,9 @@ pod2usage(-verbose=>2) if $options{man}; use Debbugs::Config qw(:config); use Debbugs::Common qw(getparsedaddrs getbugcomponent lockpid); -use Debbugs::Status qw(readbug); +use Debbugs::Status qw(readbug split_status_fields); use Debbugs::Log; +use Debbugs::UTF8 qw(encode_utf8_structure); chdir($config{spool_dir}) or die "chdir $config{spool_dir} failed: $!"; @@ -106,7 +109,7 @@ if (not lockpid($config{spool_dir}.'/lock/gen-indices')) { } # NB: The reverse index is special; it's used to clean up during updates to bugs -my @indexes = ('package', 'tag', 'severity','owner','submitter-email','status','correspondent','reverse'); +my @indexes = ('package', 'tag', 'severity','owner','submitter-email','status','correspondent','affects','reverse'); my $indexes; my %slow_index = (); my %fast_index = (); @@ -196,10 +199,11 @@ while (my $dir = shift @dirs) { next; } next if $stat->mtime < $time; - my $fdata = readbug($bug, $initialdir); + my ($fdata) = encode_utf8_structure(split_status_fields(readbug($bug, $initialdir))); $modification_made = 1; - addbugtoindex("package", $bug, split /[\s,]+/, $fdata->{"package"}); - addbugtoindex("tag", $bug, split /[\s,]+/, $fdata->{"keywords"}); + addbugtoindex("package", $bug, make_list($fdata->{package})); + addbugtoindex("tag", $bug, make_list($fdata->{keywords})); + addbugtoindex("affects", $bug, make_list($fdata->{"affects"})); addbugtoindex('submitter-email', $bug, map {lc($_->address)} getparsedaddrs($fdata->{originator})); addbugtoindex("severity", $bug, $fdata->{"severity"});