X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bin%2Fdebbugs-rebuild-index.db;h=49b925be63239f731ac4b636a6fc15492753cb0f;hb=dda4ac413007e12639f709e8e1a41c3583e78e36;hp=6523ef404e36491a6c0969a7ce9311288d164e9a;hpb=e21d955ffd42e6f59c67cd52681b782d40cf41a9;p=debbugs.git diff --git a/bin/debbugs-rebuild-index.db b/bin/debbugs-rebuild-index.db index 6523ef4..49b925b 100755 --- a/bin/debbugs-rebuild-index.db +++ b/bin/debbugs-rebuild-index.db @@ -66,13 +66,7 @@ use vars qw($DEBUG); use Debbugs::Common qw(checkpid lockpid get_hashname getparsedaddrs getbugcomponent make_list); use Debbugs::Config qw(:config); -use Debbugs::Status qw(read_bug split_status_fields); -use Debbugs::Log; -use Debbugs::DB; -use Debbugs::DB::Load qw(load_bug handle_load_bug_queue); -use DateTime; -use File::stat; - +use Debbugs::Status qw(read_bug split_status_fields generate_index_db_line); my %options = (debug => 0, help => 0, @@ -119,14 +113,14 @@ if (not lockpid($config{spool_dir}.'/lock/debbugs-rebuild-index.db')) { exit 1; } -my $time = 0; -my $start_time = time; +my $file = "index.${initialdir}.realtime"; +my $idx_rebuild = IO::File->new($file.'.rebuild','w') + or die "Couldn't open ${file}.rebuild: $!"; my @dirs = ($initialdir); my $cnt = 0; -my %tags; -my %queue; +my %bugs; while (my $dir = shift @dirs) { printf "Doing dir %s ...\n", $dir if $verbose; @@ -146,10 +140,14 @@ while (my $dir = shift @dirs) { } my $data = read_bug(bug => $bug, location => $initialdir); - # generate_index.db_line hasn't been written yet at all. - my $line = generate_index.db_line($data); - print {$index_db} $line; + my $line = generate_index_db_line($data); + $bugs{$bug} = $line; } } +binmode($idx_rebuild,':raw:encoding(UTF-8)'); +print {$idx_rebuild} $bugs{$_} foreach sort keys %bugs; +close($idx_rebuild); +rename("$file.rebuild", $file); + __END__