Annotation of coherent/g/usr/lib/uucp/tay104/contrib/uureroute, revision 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.