X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=examples%2Fdebian%2Fversions%2Fbuild-versions-db;h=10fb32c141ff65af77377c3f0e468699543a3875;hb=f9ade5b569d8c390e9501b236f3bc4a11f5c8e5f;hp=16eb5369f2ba47c8aa4173caab73cf5f88a27760;hpb=1c77944dc1bada986bf2fd81b06c90f2bcb6d765;p=debbugs.git diff --git a/examples/debian/versions/build-versions-db b/examples/debian/versions/build-versions-db index 16eb536..10fb32c 100755 --- a/examples/debian/versions/build-versions-db +++ b/examples/debian/versions/build-versions-db @@ -55,19 +55,15 @@ Display this manual. use vars qw($DEBUG); use Debbugs::Versions::Dpkg; -use IO::Uncompress::AnyUncompress; use MLDBM qw(DB_File Storable); use Fcntl; my %options = (debug => 0, help => 0, man => 0, - compprefix => '', ); GetOptions(\%options, - 'hostname=s', - 'compprefix=s', 'debug|d+','help|h|?','man|m'); pod2usage() if $options{help}; @@ -76,9 +72,6 @@ pod2usage({verbose=>2}) if $options{man}; $DEBUG = $options{debug}; my @USAGE_ERRORS; -if (not defined $options{hostname}) { - push @USAGE_ERRORS,"You must provide a hostname"; -} if (not @ARGV >= 4) { push @USAGE_ERRORS, @@ -105,10 +98,27 @@ tie %db, "MLDBM", $versions, O_CREAT|O_RDWR, 0664 tie %db2, "MLDBM", $versions_time,O_CREAT|O_RDWR, 0664 or die "tie $versions_time failed: $!"; +sub open_compressed_file { + my ($file) = @_; + my $fh; + my $mode = '<:encoding(UTF-8)'; + my @opts; + if ($file =~ /\.gz$/) { + $mode = '-|:encoding(UTF-8)'; + push @opts,'gzip','-dc'; + } + if ($file =~ /^\.xz$/) { + $mode = '-|:encoding(UTF-8)'; + push @opts,'xz','-dc'; + } + open($fh,$mode,@opts,$file); + return $fh; +} + # Read Package, Version, and Source fields from a Packages.gz file. sub read_packages { my ($packages, $component,$arch,$dist) = @_; - my $PACKAGES = IO::Uncompress::AnyUncompress->new($packages) or + my $PACKAGES = open_compressed_file($packages) die "Unable to open $packages for reading: $!"; local $_; local $/ = ''; # paragraph mode @@ -157,7 +167,6 @@ for my $suite (@suites) { # debian-installer is really a section rather than a component # (ugh). (my $viscomponent = $component) =~ s[/.*][]; - $viscomponent = $options{compprefix} . $viscomponent; my $sources = (grep { -f $_ } glob "$suitedir/$component/source/Sources.*")[0]; next unless defined $sources;