#!/usr/bin/perl # Update the size and files fields of a series list $infile = $ARGV[0]; $total = 0; $rpp_dir = "/mnt/rhscd/rpps"; sub check_rpp { local ( $name, $version, $type ) = @_; # handle '+' in the name $name =~ s/\+/\\\+/g; opendir(D, $rpp_dir); @files = readdir(D); @matches = grep(m/^$name-.*-$type\.rpp/, sort(@files)); closedir(D); if (@matches > 1) { print "VERSION WARNING: @matches\n"; print "VERSION WARNING: using $version\n"; } if (@matches < 1) { print "RPP MISSING: $name-$version-$type.rpp\n"; } } open(FD,$infile) || die "Couldn't open $infile"; $tmpfile = "$infile.new"; open(FDB,">$tmpfile") || die "Couldn't open temp file"; $line = ""; while ($line ne "XXX") { $line = ; print FDB $line; chop $line; } while () { chop; ($name, $version, $type) = split; &check_rpp($name, $version, $type); $package = "$name-$version-$type.rpp"; open(HD, "rpp-query -lp $rpp_dir/$package |"); $_ = ; chop; @info = split; $total += $info[3]; $count = 0; while () { $count++; } printf FDB "%-24s$version\t$type\t$info[3]\t$count\n", $name; close HD; } close(FD); close(FDB); open(FDB, $tmpfile); open(FD, ">$infile") || die "Couldn't open $infile for writing"; $line = ; print FD $line; $line = ; print FD $line; $line = ; print FD "$total\n"; print FD ; unlink($tmpfile); printf "$infile: $total\n";