#!/usr/bin/perl $stampdb="/Builds/packages/stampdb"; $pkg=''; $spkg=''; $dir=shift; if ($dir eq '') { print STDERR "\n Usage: mk.PACKAGES \n\n"; exit 1; } $dbroot=$ENV{DBROOT}; $dbroot="/Builds/packages/cache.db" if ($dbroot eq ''); sub processIt { print "Adding $last ..."; # we should have no bundles anymore # $ft="bundle"; # foreach (@r) { s/[\r\n]+//g; }; # if ($r[0] eq '') { # $ft="package"; # @r=`tar fvxzO $lastfull $lastpre/DESCRIPTION 2> /dev/null`; # } $ft="package"; if ( ! -e "$stampdb" ) { @r=`tar fvxzO $lastfull $lastpre/DESCRIPTION 2> /dev/null`; } else { @r=`$stampdb '-d=$dbroot' '$lastfull'`; if ($r[0] eq '') { system "tar fvxzO $lastfull $lastpre/DESCRIPTION 2> /dev/null | $stampdb -a '-d=$dbroot' '$lastfull'"; @r=`$stampdb '-d=$dbroot' '$lastfull'`; if ($r[0] eq '') { @r=`tar fvxzO $lastfull $lastpre/DESCRIPTION 2> /dev/null`; } } } $url=''; $lastac=0; foreach (@r) { s/[\r\n]+//g; $pkg.="$_\n"; $url=$1 if (/URL: (.*)/); if (/^Package:/||/^Bundle:/||/^Contains:/||/^Version:/||/^Depends:/||/^Imports:/||/^Suggests:/||/^Title:/||/^Archs:/||/^Built:/) { $lastac=1; } elsif (!/^\s+\S/) { $lastac=0; } $spkg.="$_\n" if ($lastac > 0); } $pkg.="\n"; $spkg.="\n"; push @pkgs,$last; $urls{$last}=$url; print " $ft\n"; } @f=<$dir/*.tgz>; $last=''; $lastpre=''; foreach(@f) { s/[\r\n]+//g; $full=$_; s/.*\/([^\/]+)$/$1/; ($pre,$ver)=split '_'; processIt if ($pre ne $lastpre && $lastpre ne ''); $last=$_; $lastfull=$full; $lastpre=$pre; } processIt if ($last ne ''); open OUT,">$dir/PACKAGES"; print OUT $spkg; close OUT;