#!/usr/bin/perl -w
#
#
# $Header:$

$arg = shift(@ARGV);
if ($arg eq "-f") { $go = 1; }
if ($arg eq "-v") { $verbose = 1; }
if ($arg eq "-h" || $arg eq "-?") { &usage(); exit; }
@letters = @ARGV;

$deleted = 0;
$skipped = 0;
$total   = 0;
$totsize = 0;

$users="/users";
$fname = "core";

# get list of all letters under $users
@letters = <$users/*> unless defined @letters;

# run thru the letters
foreach $let (@letters) {
   
   print "Searching $let...\n" unless(!$verbose);
   # get a list of all the names in that dir
   @unames = <$let/*>;

   # run thru the names
   foreach $name (@unames) {
 
      print "Searching $name...\n" unless(!$verbose);
      # here is the absolute filename
      $file = "$name/$fname";

      # check if it's a regular file
      if (!(-e "$name/.nocorerm")) {

         if (-e "$file" && -f "$file") {
            print "checking $file\n" unless(!$verbose);
            #open(FILE,"<$file") or print "Cannot open $file: $!\n";
            
            $ls_out=`ls -l "$file"`;

            @ls_outl=split(/\s+/,$ls_out);

            $size=$ls_outl[4];

            $totsize=$size+$totsize;

            print "found a core: $file\n" unless(!$verbose);
            if ($go) {
               @args = ("/usr/bin/rm","$file");
               system(@args) == 0 or print "Couldn't delete $file: $!\n";
            }
               $deleted++;
         }
      }
      else {
         print "$name has a .nocorerm.  Skipping.\n" unless(!$verbose);
         $skipped++;
      } # if

      $total++;
   
   } # foreach name

} #foreach letter

print "Summary statistics for core file finder:\n\n",
      "Deleted:       $deleted\n",
      "Skipped:       $skipped\n",
      "Total Checked: $total\n\n",
      "Total Size:    $totsize\n\n";

exit;

sub usage() {
   print "usage:  [-h] [-v] [-test [/users/tree]]\n";
}

