X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bin%2Fdebbugs-rebuild-index.db;h=c44bc325cbfda479170b8c797b4daf546dad44e0;hb=d711cef1a60797b9a536cb8f0f7d6be0d0828c51;hp=6523ef404e36491a6c0969a7ce9311288d164e9a;hpb=e21d955ffd42e6f59c67cd52681b782d40cf41a9;p=debbugs.git diff --git a/bin/debbugs-rebuild-index.db b/bin/debbugs-rebuild-index.db index 6523ef4..c44bc32 100755 --- a/bin/debbugs-rebuild-index.db +++ b/bin/debbugs-rebuild-index.db @@ -34,7 +34,7 @@ debbugs-rebuild-index.db [options] Debbugs spool directory; defaults to the value configured in the debbugs configuration file. -=item B<--debug, -d +=item B<--debug, -d> Debug verbosity. @@ -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,18 @@ if (not lockpid($config{spool_dir}.'/lock/debbugs-rebuild-index.db')) { exit 1; } -my $time = 0; -my $start_time = time; +my $fh_type = $initialdir; +# if initaldir is db-h, the file is db. +$fh_type = 'db' if $initialdir eq 'db-h'; + +my $file = "index.${fh_type}.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 +144,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 {$a <=> $b} keys %bugs; +close($idx_rebuild); +rename("$file.rebuild", $file); + __END__