#! /usr/bin/perl
#
$rpmdir="/opt/local/linux/6.2/RPMS";
$target="RPMS/";

%rpms=(); &dodir($rpmdir);

while(<>) {
  chomp($_); s/\s+$//; /^\s*$/ and next;
  print "$rpms{$_}\n";
}

sub dodir() {
  my ($dir) = @_;
  my (@subdirs,@allfiles,$f,$basenm);

  opendir THISDIR,"$dir" or die "opendir $dir: $!\n";
  @allfiles = map "$dir/$_", grep !/^\.\.?$/, readdir THISDIR;
  close THISDIR;
  for $f ( @allfiles ) {
    if ( -d $f ) {
	push @subdirs,$f;
    } else {
      $f =~ /.*\.rpm$/ and do {
        ($basenm=$f)=~s/^.*\/([^\/\.][^\/]*)\.rpm$/$1/;
	$basenm=~/\// and $basenm="";
	$basenm=~s/\.(i[0-9]{3}|no[a-z]+)$//;
	$basenm and ($rpms{$basenm}=$f);
      };
    }
  }
  for $f ( @subdirs ) {
    &dodir($f);
  }
}

