eval ' exec /usr/bin/perl $0 "$@" '
if $running_under_some_shell;
($progname = $0) =~ s!.*/!!;
$USAGE = "
# Reroute uucp mail
#
# Usage: $progname [-v] host [host...]
#
# Options Argument Description
# -v Verbose (doesn't execute /bin/sh)
#
";
$UUSTAT = "uustat";
$SHELL = "/bin/sh";
$SMAIL = "/bin/smail";
sub usage
{
die join ("\n", @_) . "\n$USAGE\n";
}
do "getopts.pl";
&usage ("Invalid Option") unless do Getopts ("vV");
$verbose = ($opt_v ? '-v' : ());
$suffix = ($verbose ? '' : $$);
&usage ("No system specified") if $
if (!$verbose)
{
open (SHELL, "| $SHELL");
select SHELL;
}
while ($system = shift)
{
$sysprefix = substr ($system, 0, 7);
$directory = "/usr/spool/uucp/$sysprefix";
open (UUSTAT, "$UUSTAT -s $system -c rmail |");
print "set -ex\n";
while (<UUSTAT>)
{
($jobid, ) = split;
($cfile) = substr ($jobid, length ($jobid) - 5);
$cfilename = "$directory/C./C.$cfile";
open (CFILE, $cfilename) || die "Cannot open $cfilename\n";
$_ = <CFILE>;
close CFILE;
if (/^E D\.(....) [^ ]+ [^ ]+ -CR D\.\1 0666 [^ ]+ 0 rmail (.*)/)
{
$datafile = "$directory/D./D.$1";
$address = $2;
}
else
{
print STDERR;
die "Cannot parse previous line from $cfilename\n";
}
print "$SMAIL -R $system!$address < $datafile && $UUSTAT -k $jobid\n";
}
close UUSTAT;
}
close SHELL unless $verbose;
exit 0;