From e4aacb4eb2c1a76a70e5964448951ef995118d98 Mon Sep 17 00:00:00 2001
From: cjwatson <>
Date: Sun, 17 Jul 2005 16:07:59 -0800
Subject: [PATCH] [project @ 2005-07-17 17:07:59 by cjwatson] Use readbug()
 interface to read from .summary files rather than .status files.

---
 migrate/debbugs-makeversions | 41 +++++++++++++++++++-----------------
 1 file changed, 22 insertions(+), 19 deletions(-)

diff --git a/migrate/debbugs-makeversions b/migrate/debbugs-makeversions
index 234d0fdb..84b6943b 100755
--- a/migrate/debbugs-makeversions
+++ b/migrate/debbugs-makeversions
@@ -3,13 +3,18 @@
 # guesswork, based on Version: pseudo-headers and closing mails that look
 # like Debian changelogs. The latter in particular is somewhat heuristic.
 
-use strict;
+my $config_path = '/etc/debbugs';
+my $lib_path = '/usr/lib/debbugs';
+
+require "$config_path/config";
+require "$lib_path/errorlib";
+
 use Debbugs::Log;
 use Debbugs::MIME;
 
 if (@ARGV != 2) {
     print <<EOF;
-Usage: $0 db-directory versions-directory
+Usage: $0 db-type versions-directory
 
 EOF
     exit 0;
@@ -130,18 +135,19 @@ sub mergeinto ($$)
 }
 
 my ($db, $verdb) = @ARGV[0, 1];
-opendir DB, $db or die "Can't opendir $db: $!";
+opendir DB, "$gSpoolDir/$db" or die "Can't opendir $db: $!";
 unless (-d $verdb) {
     mkdir $verdb or die "Can't mkdir $verdb: $!";
 }
 
 while (defined(my $dir = readdir DB)) {
-    next if $dir =~ /^\.\.?$/ or not -d "$db/$dir";
-    opendir HASH, "$db/$dir" or die "Can't opendir $db/$dir: $!";
+    next if $dir =~ /^\.\.?$/ or not -d "$gSpoolDir/$db/$dir";
+    opendir HASH, "$gSpoolDir/$db/$dir"
+	or die "Can't opendir $gSpoolDir/$db/$dir: $!";
 
     while (defined(my $file = readdir HASH)) {
 	next unless $file =~ /\.log$/;
-	next if -z "$db/$dir/$file";
+	next if -z "$gSpoolDir/$db/$dir/$file";
 	(my $bug = $file) =~ s/\..*//;
 
 	$bug =~ /(..)$/;
@@ -149,33 +155,30 @@ while (defined(my $dir = readdir DB)) {
 	# For incremental updates.
 	#next if -e "$verdb/$bughash/$bug.versions" and
 	#	(stat "$verdb/$bughash/$bug.versions")[9] >=
-	#	    (stat "$db/$dir/$file")[9];
+	#	    (stat "$gSpoolDir/$db/$dir/$file")[9];
 
 	print "Processing $bug ...\n" if $ENV{DEBBUGS_VERBOSE};
 
-	open STATUS, "$db/$dir/$bug.status" or next;
-	<STATUS> for 1 .. 6;	# done is field 7
-	chomp (my $done = <STATUS>);
-	<STATUS>;		# mergedwith is field 9
-	chomp (my $mergedwith = <STATUS>);
-	close STATUS;
+	my $status = readbug($bug, $db);
+	next unless defined $status;
 
-	my ($found_versions, $fixed_versions) = getbuginfo("$db/$dir/$file");
+	my ($found_versions, $fixed_versions) =
+	    getbuginfo("$gSpoolDir/$db/$dir/$file");
 
-	if (length $mergedwith) {
-	    for my $merge (split ' ', $mergedwith) {
+	if (length $status->{mergedwith}) {
+	    for my $merge (split ' ', $status->{mergedwith}) {
 		$merge =~ /(..)$/;
 		my $mergehash = $1;
 		my ($mfound, $mfixed) =
-		    getbuginfo("$db/$mergehash/$merge.log");
+		    getbuginfo("$gSpoolDir/$db/$mergehash/$merge.log");
 		mergeinto($found_versions, $mfound);
 		mergeinto($fixed_versions, $mfixed);
 	    }
 	}
 
-	@$fixed_versions = () unless length $done;
+	@$fixed_versions = () unless length $status->{done};
 
-	for my $out ($bug, (split ' ', $mergedwith)) {
+	for my $out ($bug, (split ' ', $status->{mergedwith})) {
 	    $out =~ /(..)$/;
 	    my $outhash = $1;
 
-- 
2.39.5