Annotation of coherent/g/usr/lib/uucp/tay104/contrib/uureroute, revision 1.1.1.1

1.1       root        1: #!/usr/local/bin/perl
                      2: eval ' exec /usr/local/bin/perl $0 "$@" '
                      3:        if $running_under_some_shell;
                      4: 
                      5: # From a script by <[email protected]>
                      6: # Newsgroups: comp.sources.misc
                      7: # Subject: v28i073:  uureroute - Reroute HDB queued mail, Part01/01
                      8: # Date: 26 Feb 92 02:28:37 GMT
                      9: #
                     10: # This is a Honey DanBer specific routine written in perl to reroute all
                     11: # mail queued up for a specific host.  It needs to be run as "root" since
                     12: # uucp will not allow itself to remove others requests.
                     13: #
                     14: # Revision ***  92/21/09:  Francois Pinard <[email protected]>
                     15: #      1.      adapted for Taylor UUCP
                     16: #
                     17: # Revision 1.3  91/10/08  09:01:21  src
                     18: #      1.      Rewritten in perl
                     19: #      2.      Add -v option for debugging.
                     20: #
                     21: # Revision 1.2  91/10/07  23:57:42  root
                     22: #      1.      Fix mail program path.
                     23: #      2.      Truncate directory name to 7 characters
                     24: 
                     25: ($progname = $0) =~ s!.*/!!;   # save this very early
                     26: 
                     27: $USAGE = "
                     28: #   Reroute uucp mail
                     29: #
                     30: #   Usage: $progname [-v] host [host...]
                     31: #
                     32: # Options   Argument    Description
                     33: #   -v                  Verbose (doesn't execute /bin/sh)
                     34: #
                     35: ";
                     36: 
                     37: $UUSTAT = "/usr/local/bin/uustat";
                     38: $SHELL = "/bin/sh";
                     39: $SMAIL = "/bin/smail";
                     40: 
                     41: sub usage
                     42: {
                     43:     die join ("\n", @_) . "\n$USAGE\n";
                     44: }
                     45: 
                     46: do "getopts.pl";
                     47: 
                     48: &usage ("Invalid Option") unless do Getopts ("vV");
                     49: 
                     50: $verbose = ($opt_v ? '-v' : ());
                     51: $suffix = ($verbose ? '' : $$);
                     52: 
                     53: &usage ("No system specified") if $#ARGV < 0;
                     54: 
                     55: if (!$verbose)
                     56: {
                     57:     open (SHELL, "| $SHELL");
                     58:     select SHELL;
                     59: }
                     60: 
                     61: while ($system = shift)
                     62: {
                     63:     $sysprefix = substr ($system, 0, 7);
                     64:     $directory = "/usr/spool/uucp/$sysprefix";
                     65:     open (UUSTAT, "$UUSTAT -s $system -c rmail |");
                     66:     print "set -ex\n";
                     67:     while (<UUSTAT>)
                     68:     {
                     69:        ($jobid, ) = split;
                     70:        ($cfile) = substr ($jobid, length ($jobid) - 5);
                     71:        $cfilename = "$directory/C./C.$cfile";
                     72:        open (CFILE, $cfilename) || die "Cannot open $cfilename\n";
                     73:        $_ = <CFILE>;
                     74:        close CFILE;
                     75:        if (/^E D\.(....) [^ ]+ [^ ]+ -CR D\.\1 0666 [^ ]+ 0 rmail (.*)/)
                     76:        {
                     77:            $datafile = "$directory/D./D.$1";
                     78:            $address = $2;
                     79:        }
                     80:        else
                     81:        {
                     82:            print STDERR;
                     83:            die "Cannot parse previous line from $cfilename\n";
                     84:        }
                     85:        print "$SMAIL -R $system!$address < $datafile && $UUSTAT -k $jobid\n";
                     86:     }
                     87:     close UUSTAT;
                     88: }
                     89: close SHELL unless $verbose;
                     90: 
                     91: exit 0;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.