#! /s/perl/bin/perl # Need a splitter function to chunk up a uuencoded file into multiple # pieces, suitable for mailing, and mailing them. # # Usage is: # uusplit # # subject should be "filename 1/3", etc ($bigfile, $user) = @ARGV; # Quick Error Checks die "Usage: uusplit \n" if (!$user); die "Couldn't find file $bigfile\n" if (! -f $bigfile); open(BIG, $bigfile) || die "Could not open file $bigfile.\n"; close(BIG); $lines_per_mesg = 7500; system("uuencode $bigfile $bigfile > ${bigfile}.uu"); open(BIG, "${bigfile}.uu") || die "uuencode did not create an output file.\n"; $piece = 1; $tlines = `wc -l ${bigfile}.uu`; $pieces = int ($tlines / $lines_per_mesg); $pieces++ if ($tlines % $lines_per_mesg != 0); open( MAIL, "| /bin/mail $user") || die "Could not run /bin/mail\n"; print MAIL <<"EndOfHeader"; Subject: $bigfile ($piece/$pieces) ---- BEGIN $bigfile piece $piece of $pieces ---- EndOfHeader $line = 0; while (){ print MAIL; $line++; if ($line >= $lines_per_mesg) { print MAIL "---- END $bigfile piece $piece of $pieces ----\n"; close MAIL; $line = 0; $piece++; open( MAIL, "| /bin/mail $user") || die "Could not run /bin/mail\n"; print MAIL <<"EndOfHeader"; Subject: $bigfile ($piece/$pieces) ---- BEGIN $bigfile piece $piece of $pieces ---- EndOfHeader } } print MAIL "---- END $bigfile piece $piece of $pieces ----\n"; close MAIL; close BIG; unlink("${bigfile}.uu"); print "Sent file $bigfile to user $user in $pieces pieces.\n"; exit 0;