X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=examples%2Fdebian%2Fversions%2Fbuild-versions-db;h=70b7b927045bfe53379ffee328fece60d3bda500;hb=0a8742bc3375d39ef4dde8df5e28b194af642b5c;hp=8456bfe501fcdc308687f5ee3a95db0eb6e5e311;hpb=29b55e4d5535a68cc6d2294f5c362d271b53c6d2;p=debbugs.git diff --git a/examples/debian/versions/build-versions-db b/examples/debian/versions/build-versions-db index 8456bfe..70b7b92 100755 --- a/examples/debian/versions/build-versions-db +++ b/examples/debian/versions/build-versions-db @@ -106,7 +106,6 @@ my $time = time; my %db; my %db2; if ($options{update}) { - copy($versions,$versions_new); copy($versions_time,$versions_time_new); } tie %db, "MLDBM", $versions_new, O_CREAT|O_RDWR, 0664 @@ -129,10 +128,14 @@ sub open_compressed_file { $mode = '-|:encoding(UTF-8)'; push @opts,'gzip','-dc'; } - if ($file =~ /^\.xz$/) { + if ($file =~ /\.xz$/) { $mode = '-|:encoding(UTF-8)'; push @opts,'xz','-dc'; } + if ($file =~ /\.bz2$/) { + $mode = '-|:encoding(UTF-8)'; + push @opts,'bzip2','-dc'; + } open($fh,$mode,@opts,$file); return $fh; } @@ -158,6 +161,8 @@ sub read_packages { update_package_version($db,$db2,$dist,$arch,$pkg,$ver,$time) unless $extra_source_only; } + close($PACKAGES) or + die "Error while closing ${packages}: $!"; } @@ -182,18 +187,27 @@ for my $suite (@{$suites}) { my $suitedir = "$toplevel/$suite"; for my $component ('main', 'main/debian-installer', - 'contrib', 'non-free') { + 'contrib', 'contrib/debian-installer', + 'non-free', 'non-free/debian-installer', + ) { my $componentdir = "$suitedir/$component"; - next unless -d $componentdir; + if (not -d $componentdir) { + print STDERR "No directory $suitedir/$component\n" if $DEBUG; + next; + } my $COMPONENT; opendir $COMPONENT, $componentdir or die "opendir $componentdir: $!"; # debian-installer is really a section rather than a component # (ugh). - (my $viscomponent = $component) =~ s[/.*][]; + my $viscomponent = $component; + $viscomponent =~ s[/.*][]; - my $sources = (grep { -f $_ } glob "$suitedir/$component/source/Sources.*")[0]; - next unless defined $sources; + my $sources = (grep { -f $_ } glob "$componentdir/source/Sources.*")[0]; + if (not defined $sources) { + print STDERR "No sources matching $componentdir/source/Sources.*\n" if $DEBUG; + next; + } read_packages($db,$db2,$sources, $viscomponent,'source',$suite); for my $arch (readdir $COMPONENT) { @@ -201,11 +215,15 @@ for my $suite (@{$suites}) { my $archdir = "$componentdir/binary-$arch"; my $packages = (grep { -f $_ } glob("$archdir/Packages.*"))[0]; - next unless defined $packages; + if (not defined $packages) { + print STDERR "No binary packages matching $archdir/Packages.*\n" if $DEBUG; + next; + } read_packages($db,$db2,$packages, $viscomponent,$arch,$suite); } - closedir $COMPONENT; + closedir $COMPONENT or + die "Unable to closedir $componentdir: $!"; } } }